所以我给我的可扩展列表提供了一个过滤选项,当过滤器没有提供任何内容时,我想要显示一条空消息,其中显示" No Results"在可扩展列表预定义区域的中间(高度和宽度),但我很难。
当我将空视图添加到可扩展列表所在的布局时,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="10"
android:id="@+id/orderMenu">
<EditText
android:layout_width="fill_parent"
android:layout_height="0dp"
android:id="@+id/searchBarMenu"
android:layout_gravity="center_horizontal"
android:layout_weight="1"
android:visibility="gone"
android:inputType="text"
android:hint="Search for keyword(s), divided by comma"
android:singleLine="true"
android:textSize="15dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="0dp"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Large Text"
android:id="@+id/ResturantName"
android:layout_gravity="center_horizontal"
android:paddingTop="10dp"
android:textSize="30dp"
android:layout_weight="1" />
<view
android:layout_width="wrap_content"
android:layout_height="0dp"
class="com.paze.CustomViews.MenuExpandableList"
android:id="@+id/expandableListView"
android:layout_gravity="center_horizontal"
android:layout_weight="8" />
<Button
android:layout_width="175dp"
android:layout_height="0dp"
android:text="Finish Order"
android:id="@+id/proceedButton"
android:layout_gravity="center_horizontal"
android:singleLine="true"
android:layout_weight="1" />
<TextView
android:id="@android:id/empty"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:textSize="20dp"
android:text="No Items In your order"
android:layout_centerInParent="true"
android:layout_gravity="center_horizontal"/>
</LinearLayout>
我总能看到文字视图,但如果我不在布局上添加它,我就什么也看不见:
menuListView.setEmptyView(findViewById(R.id.empty));
其中&#34;空&#34;是我为此制作的特殊布局(不是可扩展列表的位置)的视图。
如何在空的可扩展列表中间设置视图?
注意: 当我过滤时,我设置了一个新的适配器,而不是更新当前适配器的列表。
非常感谢
答案 0 :(得分:0)
您必须将特殊布局添加到活动(包含ListView的视图层次结构)视图层次结构中。然后将整个布局设置为列表的空视图。使用布局可以将文本放在任何地方。
@Override
public void onCreate(Bundle savedInstanceState) {
...
final View inflated = LayoutInflater.from(this).inflate(R.layout.empty_layout, null);
addContentView(inflated, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
listView.setEmptyView(inflated);
...
}