ScrollView中嵌入ListView只顯示一條的解決辦法
通常情況下我們不會在ScrollView中嵌套ListView,但是如果面試官非讓我嵌套的話也是可以的。
在ScrollView添加一個ListView會導(dǎo)致listview控件顯示不全,通常只會顯示一條,究竟是什么原因呢?
兩個控件的滾動事件沖突導(dǎo)致。所以需要通過listview中的item數(shù)量去計算listview的顯示高度,從而使其完整展示,如下提供一個方法供大家參考。
解決辦法如下所示:
lv = (ListView) findViewById(R.id.lv);
adapter = new MyAdapter();
lv.setAdapter(adapter); setListViewHeightBasedOnChildren(lv);
---------------------------------------------------
public void setListViewHeightBasedOnChildren(ListView listView) {
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
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));
params.height += 5;
listView.setLayoutParams(params); }
現(xiàn)階段最好的處理的方式是: 自定義ListView,重載onMeasure()方法,設(shè)置全部顯示。
import android.widget.ListView;
/** * * @Description: scrollview 中內(nèi)嵌 listview 的簡單實(shí)現(xiàn)
* * @File: ScrollViewWithListView.java
* * * @Version */
public class ScrollViewWithListView extends ListView {
public ScrollViewWithListView(android.content.Context context, android.util.AttributeSet attrs) { super(context, attrs); }
/**
* Integer.MAX_VALUE >> 2,如果不設(shè)置,系統(tǒng)默認(rèn)設(shè)置是顯示兩條 */
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec);
}
}
以上內(nèi)容是小編給大家介紹的ScrollView中嵌入ListView只顯示一條的解決辦法,希望對大家有所幫助!
- Android ListView的item中嵌套ScrollView的解決辦法
- Android編程之截屏實(shí)現(xiàn)方法(包括scrollview與listview)
- Android之ScrollView嵌套ListView和GridView沖突的解決方法
- 探討:如何在ScrollView中嵌套ListView
- Android筆記之:在ScrollView中嵌套ListView的方法
- ScrollView與ListView合用(正確計算Listview的高度)的問題解決
- Android 中 GridView嵌套在ScrollView里只有一行的解決方法
- Android編程開發(fā)之ScrollView嵌套GridView的方法
- 在android中ScrollView嵌套ScrollView解決方案
- ScrollView嵌套ListView滑動沖突的解決方法
相關(guān)文章
maven項目pom.xml中parent標(biāo)簽的使用小結(jié)
使用maven是為了更好的幫項目管理包依賴,maven的核心就是pom.xml,當(dāng)我們需要引入一個jar包時,在pom文件中加上就可以從倉庫中依賴到相應(yīng)的jar包,本文就來介紹一下maven項目pom.xml中parent標(biāo)簽的使用小結(jié),感興趣的可以了解一下2023-12-12
Spring中實(shí)現(xiàn)定時調(diào)度的幾種方法
本篇文章主要介紹了Spring中實(shí)現(xiàn)定時調(diào)度示例,可以在無人值守的時候系統(tǒng)可以在某一時刻執(zhí)行某些特定的功能,有興趣的可以了解一下。2017-02-02
淺談springMVC接收前端json數(shù)據(jù)的總結(jié)
下面小編就為大家分享一篇淺談springMVC接收前端json數(shù)據(jù)的總結(jié),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03
詳解springMVC兩種方式實(shí)現(xiàn)多文件上傳及效率比較
本篇文章介紹了springMVC兩種方式實(shí)現(xiàn)多文件上傳及效率比較。springMVC實(shí)現(xiàn)多文件上傳有兩種,一種是字節(jié)流的方式進(jìn)行文件上傳,另外一種是使用springMVC包裝好的解析器進(jìn)行上傳,有興趣的可以了解一下。2016-12-12
Java HashMap 如何正確遍歷并刪除元素的方法小結(jié)
這篇文章主要介紹了Java HashMap 如何正確遍歷并刪除元素的方法小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05

