Android上AppCombatActivity的背景颜色问题

时间:2017-06-02 06:50:24

标签: android layout background

我最近将所有活动从ActionBarActivity切换到了最近的AppCompatActivity,我注意到登录页面上出现了一些奇怪的渲染问题:

enter image description here

它不太明显,但在最后一个小部件后底部有变色。此外,在我的手机上,活动右侧有变色。这是布局的结构:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fitsSystemWindows="true">

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:paddingTop="56dp"
        android:paddingLeft="24dp"
        android:paddingRight="24dp"
        android:background="@color/white">

    <!-- content here -->
    </LinearLayout>
</ScrollView>

有没有人遇到AppCombatActivity这类背景问题的经验?

更新

接受的答案解决方案将问题解决了活动的底部。关于活动右侧的变色,我的手机上的每个应用都会发生这种情况。看起来我的三星手机的显示器已经老了,也许我应该考虑更换它。

2 个答案:

答案 0 :(得分:1)

尝试为fillViewport而不是ScrollView设置fitsSystemWindows

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fillViewport="true">
    <LinearLayout
        android:layout_height="wrap_content"
        ... />
</ScrollView>

A useful article is here

答案 1 :(得分:0)

为什么要在内部LinearLayout上设置背景颜色?这会导致透支问题。设置主题中的背景颜色:

<style name="MyTheme" parent="@android:style/Theme.Material.NoActionBar">
    <item name="android:windowBackground">@color/white</item>
</style>

或者在你的活动的onCreate:

getWindow().setBackgroundDrawableResource(R.color.white);

灰色变色是因为默认主题中的活动有灰色窗口背景,并且您在LinearLayout中设置了白色背景颜色,但LinearLayout高度与窗口高度不同。