最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android Adapter里面嵌套ListView實例詳解

 更新時間:2017年07月23日 11:09:12   投稿:lqh  
這篇文章主要介紹了Android Adapter里面嵌套ListView實例詳解的相關(guān)資料,這里提供實例代碼并說明如何實現(xiàn)該功能,需要的朋友可以參考下

Android Adapter里面嵌套ListView實例詳解

前言:

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

前幾天因為項目的需要,要在一個ListView中放入另一個ListView,也即在一個ListView的每個ListItem中放入另外一個ListView。但剛開始的時候,會發(fā)現(xiàn)放入的小ListView會顯示不完全,它的高度始終有問題。上網(wǎng)查了下,發(fā)現(xiàn)別人也有遇到這樣的問題,而大多數(shù)人都不推薦這樣的設(shè)計,因為默認(rèn)情況下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會進入另外一個頁面來詳細(xì)描述和展示以及對這個Item的操作。

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

相關(guān)文章

  • Android單項綁定MVVM項目模板的方法

    Android單項綁定MVVM項目模板的方法

    這篇文章主要給大家介紹了關(guān)于Android單項綁定MVVM項目模板的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對各位Android開發(fā)者們具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Android神兵利器之Image Asset Studio的實現(xiàn)

    Android神兵利器之Image Asset Studio的實現(xiàn)

    這篇文章主要介紹了Android神兵利器之Image Asset Studio的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Android使用 Retrofit 2.X 上傳多文件和多表單示例

    Android使用 Retrofit 2.X 上傳多文件和多表單示例

    本篇文章主要介紹了Android使用 Retrofit 2.X 上傳多文件和多表單示例,具有一定的參考價值,有興趣的小伙伴一起來了解一下
    2017-08-08
  • listview的上滑下滑監(jiān)聽,上下滑監(jiān)聽隱藏頂部選項欄的實例

    listview的上滑下滑監(jiān)聽,上下滑監(jiān)聽隱藏頂部選項欄的實例

    下面小編就為大家分享一篇listview的上滑下滑監(jiān)聽,上下滑監(jiān)聽隱藏頂部選項欄的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • Android電話撥號器實例詳解

    Android電話撥號器實例詳解

    這篇文章主要為大家詳細(xì)介紹了Android電話撥號器實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Android開發(fā)之刪除項目緩存的方法

    Android開發(fā)之刪除項目緩存的方法

    這篇文章主要介紹了Android開發(fā)之刪除項目緩存的方法,結(jié)合實例形式分析了Android開發(fā)中關(guān)于緩存的設(shè)置與刪除技巧,需要的朋友可以參考下
    2016-02-02
  • 詳解Android廣播Broadcast的啟動流程

    詳解Android廣播Broadcast的啟動流程

    這篇文章主要為大家介紹了Android廣播Broadcast啟動流程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • Android中的binder機制詳解

    Android中的binder機制詳解

    這篇文章主要介紹了Android中的binder機制詳解,幫助大家更好的理解和學(xué)習(xí)使用Android,感興趣的朋友可以了解下
    2021-04-04
  • Android應(yīng)用開發(fā)中控制反轉(zhuǎn)IoC設(shè)計模式使用教程

    Android應(yīng)用開發(fā)中控制反轉(zhuǎn)IoC設(shè)計模式使用教程

    這篇文章主要介紹了Android應(yīng)用開發(fā)中控制反轉(zhuǎn)IoC設(shè)計模式使用教程,IoC其實更常被理解為一種依賴注入的模式,用來分解業(yè)務(wù)層降低耦合,需要的朋友可以參考下
    2016-04-04
  • Android使用MobSDK短信驗證

    Android使用MobSDK短信驗證

    這篇文章主要為大家詳細(xì)介紹了Android使用MobSDK短信驗證,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-08-08

最新評論

融水| 新源县| 芦山县| 绥江县| 壶关县| 金坛市| 盘锦市| 永顺县| 沧州市| 科技| 蕲春县| 资溪县| 黑龙江省| 满城县| 衡南县| 大连市| 莲花县| 盈江县| 鲜城| 嘉鱼县| 平昌县| 嫩江县| 嵩明县| 安康市| 江川县| 陆良县| 农安县| 上饶县| 铁岭县| 河源市| 永福县| 平乐县| 衡山县| 台州市| 敖汉旗| 古交市| 花垣县| 林西县| 西青区| 贵州省| 武胜县|