如何在ListFragment中自动调整大小的空视图?

时间:2014-08-16 23:33:58

标签: android android-layout android-listfragment

更具体地说,我在SherlockListFragment内使用ViewPager以及以下布局 (full source):

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <RelativeLayout
        android:id="@+id/filter_bar"
        android:layout_width="wrap_content"
        android:layout_height="48dp"
        android:layout_alignParentBottom="true" 
        ...
        />

    <ListView
        android:id="@android:id/list"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignWithParentIfMissing="true"
        android:layout_above="@+id/filter_bar"
        ... />

    <TextView
        android:id="@android:id/empty"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignWithParentIfMissing="true"
        android:layout_above="@+id/filter_bar"
        android:text="..."
        android:visibility="invisible" 
        .../>
</RelativeLayout>

当我打开应用程序时,我看到了:

看起来很好。然后我连接并打开一个过滤器,它现在是空的

请注意,ListView的大小调整得很好。现在我输入过滤器来过滤掉所有内容:

糟糕!操作栏从显示屏上消失!但是,如果在ViewPager中来回滑动并再次执行,一切都会变得很好(并保持正常):

我可以做些什么来使空视图正常运行,就像ListView一样?

1 个答案:

答案 0 :(得分:0)

将windowSoftInputMode设置为AndroidManifest.xml中的活动声明。像这样的东西

<activity
            android:name=".controll.MyActivity"
            android:label="@string/title_activity_my"
            android:windowSoftInputMode="adjustResize"/>