自定义AdapterView的空视图

xiaoxiao2021-02-28  60

随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)、QQ技术交流群(183198395)。

实现在AdapterView(ListView、GridView等)没有数据时自动绑定空视图展示。

核心代码只有一句:调用AdapterView的setEmptyView方法,其内部会根据ListAdapter的isEmpty方法来控制显示自身还是空视图,非常简单。

这样就省去了我们自己去写逻辑控制ListView和空布局的显示切换。

下面给一个简单示例:

 

@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); View emptyView=findViewById(R.id.main_layout_empty); ListView listView=(ListView) findViewById(R.id.main_listview); listView.setEmptyView(emptyView); String[] arr={"text1","text2","text3","text4","text5",};//改变数据的有无自动变化视图 ArrayAdapter<String > adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, arr); listView.setAdapter(adapter); }

main.xml:

 

 

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <LinearLayout android:id="@+id/main_layout_empty" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="没有数据" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="刷新" /> </LinearLayout> <ListView android:id="@+id/main_listview" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>

 

 

 

 

 

 

 

转载请注明原文地址: https://www.6miu.com/read-53687.html

最新回复(0)