gpt4 book ai didi

Android:使用 android.R.id.content 添加 fragment

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:04:01 26 4
gpt4 key购买 nike

我正在尝试添加一个 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();
}
}

非常标准的东西。编译时没有任何提示..
问题是 Fragment 根本没有出现,就好像 Activity 没有附加 View 一样。当我用 XML 中定义的另一个布局 ID 替换 android.R.id.content 并使用 setContentView fragment 正确显示的布局资源。

android.R.id.content 不应该将 fragment 添加到默认 Activity 容器/ View 吗?
我是否需要为我的 fragment 指定一个冗余的中间容器?

最佳答案

我在尝试将 PreferenceFragment 添加到 ActionBarActivity 时遇到了同样的问题:该 fragment 根本不显示(它适用于简单的 Activity)。

我通过定义一个具有单帧布局的虚拟布局 xml 文件解决了这个问题。然后我用 onCreate 中的 fragment 替换这个布局:

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();
}

Activity 设置.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>

关于Android:使用 android.R.id.content 添加 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27156676/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com