谁能解释一下“ android. R.id.content”的意思?
它是如何被使用的?
Http://developer.android.com 没有任何解释。
公共静态最终整型内容 自: API 级别1 常数值: 16908290(0x01020002)
公共静态最终整型内容 自: API 级别1
常数值: 16908290(0x01020002)
作为 Philipp Reichart 评论道:
android.R.id.content提供视图的根元素,而不需要知道它的实际名称/类型/ID
android.R.id.content
如果有人需要,您可以通过使用 binding.root使用 视图绑定获得这个视图
binding.root
谷歌设计师开发 Android 用户体验具体或推荐的设计指南。Content 的布局定义了一个 线性布局,其中有一些 Android 认为是很好的标准属性。
因此,使用 android.R.id.content 加载片段管理器的根视图可以确保实现这些准则。
注意: 这个布局设置了属性: Android: addStatesFromChildren = “ true”以允许子片段覆盖这个根视图中的属性。
从版本19开始,android.R.id.content 在一个文件中定义: auto _ complete _ list. xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/content" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@android:drawable/edit_text" android:divider="@android:drawable/divider_horizontal_textfield" android:addStatesFromChildren="true">
android.R.id.content ID 值表示 Activity的整个内容区域的 ViewGroup。
Activity
ViewGroup
它可以与 Fragment一起使用:
Fragment
public class MyActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (savedInstanceState == null) { getSupportFragmentManager().beginTransaction() .add(android.R.id.content, MyFragment.newInstance()) .commit(); } } ... }
上面的代码将把由 Fragment创建的 View插入到由 android.R.id.content标识的 ViewGroup中。
View
Content 在需要视图时非常有用,例如:
展示点心吧:
Snackbar.make(activity.findViewById(android.R.id.content), MESSAGE, Snackbar.LENGTH_LONG).show();
碎片交易
getSupportFragmentManager().beginTransaction() .add(android.R.id.content, FragmnetTest.newInstance()) .commit();
来自片段示例
Snackbar.make(requireContext(), requireActivity().findViewById(android.R.id.content), item.getCategoryName(), Snackbar.LENGTH_SHORT).show();