gpt4 book ai didi

Android fragment 屏幕重叠

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

我有一个使用 fragment 的应用程序。在我用户的一台设备(HTC One)上, fragment 相互重叠,他的屏幕最终看起来一团糟:

enter image description here

我试图在我自己的硬件上重现它,尽管它不是 HTC One。我也尝试过使用 android 版本 4.1.2,这是他拥有的版本并且工作正常。差点跑出去买 HTC One,有没有人有什么建议?

当我添加新 fragment 时,我会这样做

 Fragment f = new MyFragment();
FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
ft.replace(R.id.mainContent, f);
ft.addToBackStack(null);
ft.commit();

我的 XML 布局(修剪到相关部分):

<RelativeLayout>
<LinearLayout>
<!-- My home screen content is here -->
</LinearLayout>

<!-- This is where the fragment gets placed -->
<LinearLayout android:id="@+id/mainContent"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
</LinearLayout>
</RelativeLayout>

更新

添加的 fragment 具有以下布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="@drawable/app_bg"
tools:context=".DeviceListActivity" >

<!-- snipped! (for brevity) -->
</RelativeLayout>

我一直在玩 - 我注意到如果我删除 android:background 我可以重现这个问题,这让我相信 HTC One 导致 fragment 的背景属性由于某种原因被忽略。

最佳答案

我遇到过类似的情况,以下对我有用。

检查 savedInstanceState 是否为非空,在这种情况下,不要进行 fragment 事务。它将解决这个问题。

if (homeFragment == null) {
if (savedStateInstance != null) {
homeFragment = (HomeFragment) fragmentManager.findFragmentByTag(HOME_FRAGMENT);
return;
}
// tie new fragment
homeFragment = new HomeFragment();
homeFragment.setArguments(bundle);
FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.add(homeFragment, HOME_FRAGMENT);
transaction.commit();
}

希望这对您有所帮助。

关于Android fragment 屏幕重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17126135/

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