gpt4 book ai didi

android - AppCompat Action Bar 库不显示添加的 fragment

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:21:43 24 4
gpt4 key购买 nike

编辑:如果我扩展 FragmentActivity 而不是 ActionBarActivity 我的布局再次显示(没有 ActionBar当然)。

ActionBar4.x 设备上按预期工作,但在我的 2.3 设备上我得到的只是 ActionBar 和它下面的空白屏幕Fragment 似乎没有被添加到 Activity 中。

主题.xml

<style name="AppTheme" parent="AppBaseTheme">
<item name="actionBarStyle">@style/Widget.ActionBar</item>
</style>

themes-v11.xml

<style name="AppTheme" parent="AppBaseTheme">
<item name="android:actionBarStyle">@style/Widget.ActionBar</item>
</style>

styles.xml

<style name="Widget.ActionBar" parent="@style/Widget.AppCompat.ActionBar">
<item name="android:background">@color/actionbar_background</item>
<item name="background">@color/actionbar_background</item>
</style>

Activity onCreate()

FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
myFragment = new WallFragment();
fragmentTransaction.add(android.R.id.content,
myFragment, myFragment.FRAGMENT_TAG);
fragmentTransaction.commit();

我正在使用 Gradle 在我的应用中包含 AppCompat ActionBar 库。

compile 'com.android.support:appcompat-v7:18.0.+'

最佳答案

在 Android SDK 的工具目录中加载 hierarchyviewer,在 4.x 设备上,您放置 fragment 的 View 似乎是 android.R.id.content并且在运行 AppCompat ActionBar 库的 2.3 设备上是 R.id.action_bar_activity_content

不幸的是,您似乎需要在添加 fragment 时根据平台版本进行分支。 http://code.google.com/p/android/issues/detail?id=58108 中建议这样做(还不确定 3.x 设备)。

使用此方法获取用于添加 Fragment 的正确 View 。我的测试还表明,在使用 AppCompat ActionBar 库时,3.x 设备的行为类似于 2.3 设备。

public static int getContentViewCompat() {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH ?
android.R.id.content : R.id.action_bar_activity_content;
}


hierarchyviewer 截图

  • 2.3

2.3

  • 4.x

4.x

关于android - AppCompat Action Bar 库不显示添加的 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17998781/

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