我有一个覆盖整个布局背景的渐变。但是,当我关闭软件键盘时,梯度调整到全高需要大约1秒钟。这会产生您在下图中看到的白色背景。
我想做像
这样的事情android:windowSoftInputMode="adjustPan"
然而,这将是不好的做法,因为列表视图的很大一部分将隐藏在键盘下。渐变:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
android:useLevel="false" >
<gradient
android:startColor="#0d2d70"
android:endColor="#007dbc"
android:useLevel="false"
android:type="linear"
android:angle="45" />
</shape>
布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/gradient"
android:padding="20dp" >
<!-- input field is here -->
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/input_licence"
android:divider="#FFFFFF"
android:dividerHeight="1dp"
android:padding="5dp"
android:scrollbarStyle="outsideOverlay" >
</ListView>
</RelativeLayout>
任何想法如何防止空白区域?
答案 0 :(得分:1)
我已经解决了我的问题。我没有为每个活动设置可绘制的背景,而是将它设置在styles.xml中,如此
<style name="AppTheme" parent="AppBaseTheme">
<item name="android:windowBackground">@drawable/gradient</item>
</style>
白色空间消失。
答案 1 :(得分:0)
键盘退出后,视图似乎没有失效。虽然我不确定实际问题。我建议你通过代码手动使视图无效。像,
container.invalidate();
http://developer.android.com/reference/android/view/View.html#invalidate()