我最近将所有活动从ActionBarActivity
切换到了最近的AppCompatActivity
,我注意到登录页面上出现了一些奇怪的渲染问题:
它不太明显,但在最后一个小部件后底部有变色。此外,在我的手机上,活动右侧有变色。这是布局的结构:
<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
这类背景问题的经验?
更新
接受的答案解决方案将问题解决了活动的底部。关于活动右侧的变色,我的手机上的每个应用都会发生这种情况。看起来我的三星手机的显示器已经老了,也许我应该考虑更换它。
答案 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>
答案 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高度与窗口高度不同。