2017-06-02 177 views
0
AppCombatActivity

最近,我的所有活动从ActionBarActivity到最近AppCompatActivity,我注意到在登录页面上一些奇怪的渲染问题:背景颜色的问题与Android

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经验?

更新:

接受的答案的解决方案固定在活动底部的问题。关于活动右侧的变色,这发生在每个我的手机上。看起来我的三星手机的显示屏正在变老,也许我应该考虑替换它。

+1

Downvoter:请留下一个理由。 –

+0

昨天我在我的[回复](https://stackoverflow.com/questions/44312112/trying-to-get-current-location-on-my-google-map/44312181)上得到了-2,之后问问题评论说,我的答案解决了他/她的问题,没有+1并接受。生活... :) – snachmsm

+0

你有没有尝试从LinearLayout向ScrollView移动android:background =“@ color/white”? –

回答

1

尝试为ScrollView,而不是fitsSystemWindowsfillViewport集:

<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

+0

这没有解决它,但我会记住这一点,以防问题有多种原因。奇怪的是,左侧的变色没有出现在屏幕截图中。换句话说,我自己的Android手机并没有看到它,尽管我的眼睛是这样。许多显示器有问题。屏幕截图上的 –

+0

我在“忘记密码”下面看到变色,我非常确定'fillViewport'应该修复它......也许一些Java线路会导致一些其他问题。尝试为ScrollView设置一些颜色(黑色?),并检查这个浅灰色实际上是ScrollView的默认颜色。您也可以打开设备上的开发人员设置下的“绘制边界”选项。编辑:尝试''wrap_content'为'LinearLayout'高度 – snachmsm

+0

添加'android:layout_height =“wrap_content”'修复了底部的问题。左边的问题仍然存在。奇怪的是,它并没有出现在横向模式中。我会在接下来的几天里关注这个问题,并试着看看现在其他活动是否也有这个问题+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高度与Window高度不同。

+0

你如何解释右侧有一列变色(而不是灰色)? –

+0

关于窗口backgrond透支请参阅:https://android-developers.googleblog.com/2009/03/window-backgrounds-ui-speed.html – goodev

+0

另一个答案解决了底部的问题,但不是在两侧。看来我的手机显示屏可能有问题。 –