国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android Adapter里面嵌套ListView實例詳解

2019-12-12 02:25:07
字體:
供稿:網(wǎng)友

Android Adapter里面嵌套ListView實例詳解

前言:

可嵌套~但是顯示需要特殊處理下~以下是處理方法

前幾天因為項目的需要,要在一個ListView中放入另一個ListView,也即在一個ListView的每個ListItem中放入另外一個ListView。但剛開始的時候,會發(fā)現(xiàn)放入的小ListView會顯示不完全,它的高度始終有問題。上網(wǎng)查了下,發(fā)現(xiàn)別人也有遇到這樣的問題,而大多數(shù)人都不推薦這樣的設(shè)計,因為默認情況下Android是禁止在ScrollView中放入另外的ScrollView的,它的高度是無法計算的。

     又搜索了一下,發(fā)現(xiàn)有StackOverflow上的牛人已經(jīng)解決了這個問題,經(jīng)過試驗發(fā)現(xiàn)是可以解決問題的,它的思路就是在設(shè)置完ListView的Adapter后,根據(jù)ListView的子項目重新計算ListView的高度,然后把高度再作為LayoutParams設(shè)置給ListView,這樣它的高度就正確了,以下是源碼: 

public class Utility {    public static void setListViewHeightBasedOnChildren(ListView listView) {      ListAdapter listAdapter = listView.getAdapter();       if (listAdapter == null) {        // pre-condition        return;      }        int totalHeight = 0;      for (int i = 0; i < listAdapter.getCount(); i++) {        View listItem = listAdapter.getView(i, null, listView);        listItem.measure(0, 0);        totalHeight += listItem.getMeasuredHeight();      }        ViewGroup.LayoutParams params = listView.getLayoutParams();      params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));      listView.setLayoutParams(params);    }  }   

       只要在設(shè)置ListView的Adapter后調(diào)用此靜態(tài)方法即可讓ListView正確的顯示在其父ListView的ListItem中。但是要注意的是,子ListView的每個Item必須是LinearLayout,不能是其他的,因為其他的Layout(如RelativeLayout)沒有重寫onMeasure(),所以會在onMeasure()時拋出異常。

      在ScrollView中嵌套ListView(或者ScrollView)的另外一個問題就是,子ScrollView中無法滑動的(如果它沒有顯示完全的話),因為滑動事件會被父ScrollView吃掉,如果想要讓子ScrollView也可以滑動,只能強行截取滑動事件,有牛人在論壇中發(fā)過代碼說可以。雖然我沒有親自試過,但估計是可行的。

      雖然在ScrollView中顯示ScrollView在技術(shù)上的難題可以攻破,但是這樣的設(shè)計卻是非常差的用戶體驗因為用戶會不容易看到和操作子ScrollView中的內(nèi)容。比如好的設(shè)計是,父ListView的每個Item只顯示概括性的描述,然后點擊其Item會進入另外一個頁面來詳細描述和展示以及對這個Item的操作。

以上就是對Android Adapter嵌套Listview 的實例詳解,本站關(guān)于Android 開發(fā)的文章還有很多,希望大家搜索查閱,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 孟津县| 康乐县| 理塘县| 南皮县| 资源县| 普安县| 南雄市| 循化| 丹寨县| 九寨沟县| 临高县| 来凤县| 巴彦淖尔市| 平塘县| 格尔木市| 延吉市| 望谟县| 永善县| 遵义县| 大新县| 富顺县| 梁平县| 余干县| 廉江市| 中牟县| 依安县| 南涧| 宜州市| 颍上县| 留坝县| 高密市| 元朗区| 济南市| 遂宁市| 玛多县| 石屏县| 西华县| 梅州市| 双牌县| 张家界市| 西乌珠穆沁旗|