Android ListView setEmptyView

來源:互聯網
上載者:User

標籤:

http://my.eoe.cn/yaming/archive/879.html

 

1
       當我們使用ListView或GridView的時候,當列表為空白的時候,我們需要一個特殊的View來提示使用者操作,於是就有了setEmptyView().下面看看如何使用:
 1 2 3 4 5 6 7 8 910111213141516
<LinearLayout     xmlns:android="http://schemas.android.com/apk/res/android"     android:orientation="vertical"     android:layout_width="fill_parent"     android:layout_height="fill_parent">     <ListView         android:layout_width="fill_parent"         android:layout_height="fill_parent"         android:id="@+id/list_view" />     <TextView         android:id="@+id/empty_list_view"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:text="List view is empty"         android:visibility="gone" /> </LinearLayout> 
123
ListView list= (ListView)findViewById(R.id.mylist);  TextView tv= (TextView)findViewById(R.id.myempty);  list.setEmptyView(tv);  

 

顯示複雜的View

 

當列表內容為空白的時候就會直接顯示出來
但是有時候我們提示的View很複雜,我們不想寫在同一個檔案中我可以想下面這樣:

123456
TextView emptyView = new TextView(context);   emptyView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));   emptyView.setText(“This appears when the list is empty”);   emptyView.setVisibility(View.GONE);   ((ViewGroup)list.getParent()).addView(emptyView);   list.setEmptyView(emptyView);

1234
inflater = getLayoutInflater(); emptyView = inflater.inflate(R.layout.empty_view, null); addContentView(emptyView, new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT)); list.setEmptyView(emptyView);  
注意:

1.不要讓提示的View在不改顯示的時候顯示出來了

1
emptyView.setVisibility(View.GONE);   

2.setEmptyView()這個方法是有限制的,這個View必須在當前的View hierarchy的節點上,我們可以自己寫在當前布局檔案裡面,也可以寫在外面,但是需要把View添加到當前的View hierarchy的節點上。、

123
((ViewGroup)list.getParent()).addView(emptyView);   //或者addContentView(emptyView, new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT)); 

^_^ 歡迎留言

此處用三種QQ通訊錄的圖做展示:

 

 

[java] view plaincopy 
    1. TextView emptyView = new TextView(this);  
    2. emptyView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,  
    3.         LayoutParams.MATCH_PARENT));  
    4. emptyView.setTextColor(getResources().getColor(  
    5.         R.color.TextTaskTypeColor));  
    6. emptyView.setText("沒有廳店積分明細表資訊");  
    7. emptyView.setVisibility(View.GONE);  
    8. emptyView.setGravity(Gravity.CENTER);  
    9. ((ViewGroup) mListView.getParent()).addView(emptyView);  
    10. mListView.setEmptyView(emptyView);  
    11. // 設定資料  
    12. adapter = new ShopDetailReportAdapter();  
    13. mListView.setAdapter(adapter);  

Android ListView setEmptyView

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.