我想在抽屉布局的列表视图中将自定义视图显示为空视图! 我在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);
但我的自定义空视图在我的列表视图中没有显示为空!
答案 0 :(得分:0)
我有同样的问题,最后找到了解决方案。
您实际上可以将单独的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添加到导航抽屉中的列表
<android.support.design.widget.NavigationView
子项。android:visibility="gone"
drawerListview.setAdapter(mDrawerAdapter);
drawerListview.setEmptyView(findViewById(R.id.empty_view));
整个导航抽屉实际上没有<android.support.design.widget.NavigationView
。但是,将您的列表和空视图添加为子项,可确保子项位于导航抽屉内,而不是内容区域内。它还会自动设置导航抽屉宽度,以匹配所有屏幕尺寸的材料设计指南。
答案 1 :(得分:-1)
只要将适配器设置为非空值,空视图就会被取消。您需要在准备好显示时设置适配器。