您好,登錄后才能下訂單哦!
這篇“Android開發怎么實現ScrollView中嵌套兩個ListView”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Android開發怎么實現ScrollView中嵌套兩個ListView”文章吧。
具體如下:
做的項目中要使用兩個ListView在同一個頁面上下顯示,因為數據源不同,不能通過在Adapter中設置標志位去區分顯示,最后只能硬著頭皮做一個ScrollView嵌套兩個ListView,但按正常情況是不能同時顯示的,會出現上面的ListView完全顯示,下面的只顯示一個Item,查了一些資料終于成功了
主要有一個ListViewUtility ,代碼如下:
import java.io.File; import android.content.Intent; import android.net.Uri; import android.view.View; import android.view.ViewGroup; import android.widget.ListAdapter; import android.widget.ListView; public class ListViewUtility { // 是一個Scrollview 中 添加兩個Listview的顯示布局 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++) { // Global.pos = 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); } }
然后再寫兩個Listview,如下
signListview.setAdapter(mYinggaoSignListAdapter); appListView.setAdapter(adapter); ListViewUtility.setListViewHeightBasedOnChildren(signListview); ListViewUtility.setListViewHeightBasedOnChildren(appListView);
最后把兩個ListView添加到 ListViewUtility中,并且兩個ListView要填充完再添加,兩個ListView中的adpter的布局最外層要使用LinearLayout,只有LinearLayout 在ListViewUtility 中才能成功測量每個Item 的高度,不然就會出錯。
以上就是關于“Android開發怎么實現ScrollView中嵌套兩個ListView”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。