Hel*_*ist 5 android android-layout android-fragments android-view
我正在尝试添加一个Fragment来填充Activity的空间(实际上是一个ActionBarActivity,我正在使用appcombat v7),如Android API指南中所示:https://developer.android.com/guide/topics/ui /actionbar.html#Tabs
所以activity类中的相关代码看起来像这样:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(savedInstanceState == null) {
SomeFragment fragment = new SomeFragment();
getSupportFragmentManager()
.beginTransaction()
.add(android.R.id.content, fragment, fragment.getClass().getSimpleName())
.commit();
}
}
Run Code Online (Sandbox Code Playgroud)
很标准的东西.
这个编译没有任何抱怨.. 问题是Fragment根本没有出现,好像Activity没有附加视图.当我用android.R.id.contentXML中定义的另一个布局id 替换并使用setContentView布局资源时片段正确显示.
不应该android.R.id.content将片段添加到默认活动容器/视图中?
我是否需要为我的片段指定一个冗余的中间容器?
当尝试将 a 添加PreferenceFragment到 an时,我添加了同样的问题ActionBarActivity:片段根本不显示(它适用于简单的Activity)。
我通过定义一个带有单框架布局的虚拟布局 xml 文件来解决这个问题。然后我用我的片段替换这个布局onCreate:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
// Display the fragment as the main content.
getFragmentManager().beginTransaction()
.replace(R.id.settings_layout, new SettingsFragment())
.commit();
}
Run Code Online (Sandbox Code Playgroud)
活动设置.xml:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/settings_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2977 次 |
| 最近记录: |