【问题标题】:How to set custom EmptyView for listview in Navigation Drawer如何在导航抽屉中为列表视图设置自定义 EmptyView
【发布时间】:2014-06-27 12:59:02
【问题描述】:

我想在抽屉布局的列表视图中将自定义视图显示为空视图! 我像这样在 xml 中创建一个视图并将其命名为 view_custom_empty.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"
    android:background="#FFff0000">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="NO RESULT"
        android:textColor="#FFffffff" />

</RelativeLayout>

在我的活动中,我像这样设置列表视图 emptyview:

View emptyView = getLayoutInflater().inflate(R.layout.view_custom_empty, null);
ViewGroup viewGroup = (ViewGroup) drawerLayout.getParent();
viewGroup.addView(emptyView, 0);

drawerListview.setEmptyView(emptyView);
drawerListview.setAdapter(mDrawerAdapter);

但是当我的自定义空视图为空时,它不会出现在我的列表视图中!

【问题讨论】:

    标签: android listview navigation-drawer


    【解决方案1】:

    我遇到了同样的问题,终于找到了解决方案。 您实际上可以将单独的layout.xml 设置为空视图,但它不会在抽屉中,而是在活动本身中。

    activity_main.xml:

     <?xml version="1.0" encoding="utf-8"?>
    <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/drawer_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="false"
        tools:openDrawer="start">
    
        <!-- Your activity content here-->
    
        <android.support.design.widget.NavigationView
            android:id="@+id/navigation_view"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="start">
    
        <!-- Your ListView you want to be shown if not empty-->
            <ListView
              android:id="@+id/left_drawer"
              android:layout_width="wrap_content"
              android:layout_height="match_parent"
              android:layout_gravity="start"
              android:background="@android:color/white"/>
    
      <!-- Here starts the empty view Layout-->
              <RelativeLayout
                android:id="@+id/empty_view"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="#FFff0000"
                android:visibility="gone">
    
              <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:layout_centerVertical="true"
                android:text="NO RESULT"
                android:textColor="#FFffffff" />
    
            </RelativeLayout>
    
        </android.support.design.widget.NavigationView>
    
    </android.support.v4.widget.DrawerLayout>
    

    empty_view 添加到您的列表中,如下所示:

    drawerListview.setAdapter(mDrawerAdapter);
    drawerListview.setEmptyView(findViewById(R.id.empty_view));
    

    逐步了解如何将 EmptyView 添加到 Navigation Drawer 中的列表中

    1. 将 EmptyView(布局)添加为导航抽屉布局内 &lt;android.support.design.widget.NavigationView 的子项。
    2. 设置保持 EmptyView 消失的 Layouts/Views 可见性。在你的情况下 RealtiveLayout android:visibility="gone"
    3. 从第 2 点向 Layout/View 添加一个 Id,您在活动中引用
    4. 将 EmptyView 添加到您的列表中,如下所示:drawerListview.setAdapter(mDrawerAdapter); drawerListview.setEmptyView(findViewById(R.id.empty_view));

    说明:

    整个导航抽屉实际上可以在没有&lt;android.support.design.widget.NavigationView 的情况下工作。但是将您的列表和空视图添加为子项,确保子项位于导航抽屉内,而不是在您的内容区域内。它还自动设置导航抽屉的宽度,以匹配所有屏幕尺寸的材料设计指南。

    【讨论】:

      【解决方案2】:

      只要您将适配器设置为非空值,空视图就会被关闭。当它准备好显示时,您需要设置适配器。

      【讨论】:

        猜你喜欢
        • 2016-06-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-15
        • 1970-01-01
        相关资源
        最近更新 更多