Android開發(fā)實現(xiàn)ScrollView中嵌套兩個ListView的方法
本文實例講述了Android開發(fā)實現(xiàn)ScrollView中嵌套兩個ListView的方法。分享給大家供大家參考,具體如下:
做的項目中要使用兩個ListView在同一個頁面上下顯示,因為數(shù)據(jù)源不同,不能通過在Adapter中設(shè)置標(biāo)志位去區(qū)分顯示,最后只能硬著頭皮做一個ScrollView嵌套兩個ListView,但按正常情況是不能同時顯示的,會出現(xiàn)上面的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 的高度,不然就會出錯
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android基本組件用法總結(jié)》、《Android開發(fā)入門與進階教程》、《Android布局layout技巧總結(jié)》、《Android視圖View技巧總結(jié)》、《Android編程之a(chǎn)ctivity操作技巧總結(jié)》、《Android資源操作技巧匯總》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設(shè)計有所幫助。
相關(guān)文章
Flutter實戰(zhàn)教程之酷炫的開關(guān)動畫效果
這篇文章主要給大家介紹了關(guān)于Flutter實戰(zhàn)教程之酷炫的開關(guān)動畫效果的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
Android動態(tài)權(quán)限申請實現(xiàn)步驟分解
對于一些危險權(quán)限在AndroidManifest清單文件中申請之后,還需要得到用戶的許可并打開,才算是真正的開啟了這個權(quán)限。所以可以使用動態(tài)申請權(quán)限,對于某個功能,如果需要開啟某個權(quán)限,在用戶使用它之前,彈窗提示用戶是否要開啟這個權(quán)限2023-04-04
ActivityManagerService廣播注冊與發(fā)送示例解析
這篇文章主要為大家介紹了ActivityManagerService廣播注冊與發(fā)送示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-03-03
Android開發(fā)之MediaPlayer基本使用方法詳解
這篇文章主要介紹了Android開發(fā)之MediaPlayer基本使用方法,結(jié)合實例形式較為詳細(xì)的分析了MediaPlayer中的常用函數(shù)與基本使用技巧,需要的朋友可以參考下2017-05-05
Android中實現(xiàn)多線程的幾種方式小結(jié)
在 Android 中,實現(xiàn)多線程編程主要有7種方式,每種方式都有其適用場景和優(yōu)缺點,本文將詳細(xì)介紹一下具體實現(xiàn)方式,大家可以根據(jù)需要自行選擇2025-03-03
Android 簡單的彈出框(在屏幕中間,傳string[],根據(jù)內(nèi)容框框大小自適應(yīng))
這篇文章主要介紹了Android 簡單的彈出框(在屏幕中間,傳string[],根據(jù)內(nèi)容框框大小自適應(yīng)),需要的朋友可以參考下2017-04-04
在Android中通過Intent使用Bundle傳遞對象的使用方法
這篇文章主要介紹了在Android中通過Intent使用Bundle傳遞對象的使用方法,詳細(xì)介紹Intent使用Bundle傳遞對象的方法。有需要的可以了解一下。2016-11-11

