背景色主题问题

4

当我在应用程序主题中使用背景时,活动和片段的背景出现问题:

<item name="android:colorBackground">@android:color/white</item>
<item name="android:windowBackground">@android:color/white</item>

当我将这个放在我的主题上并在片段之间导航时,动画会产生奇怪的阴影:

enter image description here

这是正常的吗?我在片段之间有一个事务动画:

//add fragment
supportFragmentManager.beginTransaction().setCustomAnimations(
    R.anim.enter,
    R.anim.exit,
    R.anim.pop_enter,
    R.anim.pop_exit
).replace(R.id.fragment_container,fragmentToShow)
 .addToBackStack(null).commit()

如果我删除动画片段,阴影会重叠在前面的片段上(这比动画不是问题更糟):

enter image description here

所有基础主题应用程序均为:

<style name="Base.Theme.App" parent="Theme.AppCompat.DayNight">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>

    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:windowLightStatusBar" tools:ignore="NewApi">true</item>
    <item name="android:statusBarColor" tools:targetApi="lollipop">@android:color/transparent</item>

    <item name="windowActionBarOverlay">true</item>

    <item name="colorControlNormal">@color/secondaryColor</item>
    <item name="android:colorBackground">@android:color/white</item>


    <!-- Styles of text -->
    <item name="android:textColor">@color/colorText</item>
    <item name="android:textSize">18sp</item>
    <item name="android:fontFamily">@font/montserrat_regular</item>

    <!-- CheckBox style -->
    <item name="android:checkboxStyle">@style/MyCheckBoxStyle</item>

    <!-- styles of button -->
    <item name="android:textAllCaps">false</item>

</style>

在这两种情况下,阴影都会在几秒钟后消失... 请问我能帮忙吗?

如果有帮助的话,尝试移除colorControlNormal和android:colorBackground。 - Hardik Talaviya
相同的错误,没有任何改变。 - Jose Pose S
你是想在两个片段中都添加白色的背景颜色吗? - Hardik Talaviya
显然,如果我尝试将这种颜色添加到主题中,就是为了防止在2000个片段中添加此颜色。 - Jose Pose S
你可以在即将打开的下一个fragment的onViewCreated方法中尝试将setTranslationZ()设置为0。根据安卓开发文档,我觉得elevation和Translationz负责视图阴影。 - KURUMADDALI ANURAG
2个回答

0

试试这个:

将白色背景应用到你的片段父布局


0
如果我移除动画片段,阴影会重叠在之前的片段上(这比动画本身更糟糕):
我以前的一个应用程序也遇到了同样的问题。我发现问题出在片段上,它们有透明的背景。你必须设置片段的背景颜色,以防止它们显示之前的活动或片段内容。
尝试执行:
fragment.getView().setBackgroundColor(YOUR COLOR CHOICE);

也许这也可以帮到你


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接