繁体   English   中英

用于空Listview适配器的Android Java ViewStub

[英]Android Java ViewStub for Empty Listview Adapter

我正在尝试在适配器列表视图为空时显示empty.xml布局。 我尝试使用http://cyrilmottier.com/2011/06/20/listview-tips-tricks-1-handle-emptiness/但我做不到。

empty.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".Principal"
>

<ListView
    android:id="@+id/listview_items"
    tools:listitem="@layout/item_list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:dividerHeight="1px"
    android:divider="#ebebeb"
    android:scrollbarStyle="insideOverlay"
    >
</ListView>

<ViewStub
    android:id="@+id/stub_import"
    android:layout="@layout/empty"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom" />
</LinearLayout>

main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".Principal"
>

<ListView
    android:id="@+id/listview_items"
    tools:listitem="@layout/item_list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:dividerHeight="1px"
    android:divider="#ebebeb"
    android:scrollbarStyle="insideOverlay"
    >
</ListView>

<ViewStub
    android:id="@+id/stub_import"
    android:layout="@layout/empty"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom" />
</LinearLayout>

我知道要进行充气和放气的命令。

   ((ViewStub) findViewById(R.id.stub_import)).setVisibility(View.VISIBLE);
   // or
   View importPanel = ((ViewStub) findViewById(R.id.stub_import)).inflate();

当我的列表视图为空时,应该在哪里将命令充气?

提前致谢。

我个人在onCreateonResume执行这些操作,方法是先使用listview的adapter.getCount()方法检查我的listview是否为空,然后检查适配器是否为空,然后为viewStub充气。

我的代码如下所示:

if(adapter.getCount()==0){
        ViewStub stub=(ViewStub) viewRoot.findViewById(R.id.viewstub);
        stub.inflate();
    }

我的XML文件看起来像

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"    
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.younickacademy.younickmobile.Fragment_AlertsList"
    android:orientation="vertical">

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1">

         <ListView
            android:id="@+id/listview_alerts"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"></ListView>
         <ViewStub
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout="@layout/empty_alert_list"
            android:id="@+id/viewstub"/>

    </FrameLayout>

    <Button
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_gravity="bottom|right"
        android:layout_margin="10dp"
        android:id="@+id/btn_new_alert"
        android:elevation="6dp"
        android:gravity="center"
        android:text="+"
        android:textColor="@color/textColorPrimary"
        android:background="@drawable/circular_button_selector"/>
</LinearLayout>

我的empty_alert_list.xml布局看起来像:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:text="No Emergency Alerts have been received Yet."
    android:textStyle="bold"
    android:gravity="center_horizontal"
    />

</RelativeLayout>

但是,这可能不是最佳的实现,但是确实会立即解决我的问题,直到找到更好的hack为止。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM