標籤:
ListView中Header、Footer View應該是會應該遇到, 比如說,滾動到底部時,自動開始載入; 對於一些應用市場,會在Header中加上ViewFlipper做應用推薦(滾動的那種,好像很不少市場都有這個功能)。
添加時一般大家都會做如下處理:
[java] view plaincopyprint?
- ListView listView = xxxx;
- listView.addHearderView(item_head);
- listView.setAdapter(adapter);
頁面正常顯示之後,此時如果使用者重新整理, 發現沒有需要推薦的應用,這個時候,ListView的Header就需要隱藏了. 第一個想到的就是:
[java] view plaincopyprint?
- item_head.setVisibility(View.GONE);
沒錯,內容確實消失了,可那塊位置還是佔用著,頁面上顯示一塊空白地區!
關於解決方案,有的人說設定Header中子View為不可見; 有的人說設定Header中子View高度為0;但是我這邊測試下來,沒有效果..
當前我的解決辦法:
[java] view plaincopyprint?
- item_head.setPadding(0, -1 * headContentHeight, 0, 0);
- item_head.setVisibility(View.GONE);
最後我想說,這問題感覺真的很蛋疼!在此記錄一下,做備忘!
在Android開發中,在使用listView時,我們會經常用到footerView或者headerView,給ListView添加的footer和header好多時候,會根據情況隱藏和顯示。
因為footer和header使用刪除和添加的方法總感覺不好。
而直接設定footer和header中的view為GONE時,雖然內容不顯示了,但是這塊地區還是會被佔用。
經過各種方法測試,最後得出一個可以完美解決該問題的方法,如下代碼:
this.footerLayout.setVisibility(View.GONE);
this.footerLayout.setPadding(0, -footerLayout.getHeight(), 0, 0);
意思就是把內容往上移動View的高度。
當然,在需要顯示的時候,還要設定回來(做一個if else處理即可)
this.footerLayout.setVisibility(View.VISIBLE);
this.footerLayout.setPadding(0, 0, 0, 0);
參考:
http://stackoverflow.com/questions/4317778/hide-footer-view-in-listview
http://blog.sina.com.cn/s/blog_70b9730f01014sgm.html
[Android Bug] ListView中Header, Footer無法隱藏(gone)的問題