一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語言 - JAVA教程 - ScrollView中嵌入ListView只顯示一條的解決辦法

ScrollView中嵌入ListView只顯示一條的解決辦法

2020-04-24 12:44cao185493676 JAVA教程

在ScrollView添加一個(gè)ListView會(huì)導(dǎo)致listview控件顯示不全,通常只會(huì)顯示一條,究竟是什么原因呢?下面腳本之家小編給大家介紹ScrollView中嵌入ListView只顯示一條的解決辦法,感興趣的朋友一起學(xué)習(xí)吧

 通常情況下我們不會(huì)在ScrollView中嵌套ListView,但是如果面試官非讓我嵌套的話也是可以的。

在ScrollView添加一個(gè)ListView會(huì)導(dǎo)致listview控件顯示不全,通常只會(huì)顯示一條,究竟是什么原因呢?

兩個(gè)控件的滾動(dòng)事件沖突導(dǎo)致。所以需要通過listview中的item數(shù)量去計(jì)算listview的顯示高度,從而使其完整展示,如下提供一個(gè)方法供大家參考。

解決辦法如下所示:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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è)置全部顯示。

?
1
2
3
4
5
6
7
8
9
10
11
12
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只顯示一條的解決辦法,希望對(duì)大家有所幫助!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产伦精品一区二区三区免费观看 | 国产成人 免费观看 | 美女翘臀内疯狂进出 | 桥本有菜在线四虎福利网 | 肥胖女性大bbbbbb视频女厕 | 国产精品久久久久毛片 | 日韩欧美综合在线二区三区 | 日韩资源在线 | porno18老师hd| 亚洲视频1区| 国产精品反差婊在线观看 | 兽操人 | 草莓视频在线观看免费 | 波多野结衣不卡 | 亚洲免费小视频 | 白丝女榨干蹂躏我 | 小夫妻天天恶战 | gayrb免费漫画入口 | 亚洲精品一区制服丝袜 | 国四虎影永久 | ass亚洲熟妇毛茸茸pics | 亚洲天堂视频在线播放 | 美女扒开奶罩让男人吃奶 | 日本一区二区视频免费播放 | 免费观看日本人成影片 | 国产一级精品高清一级毛片 | 美女gif趴跪式抽搐动态图 | 国产欧美视频在线观看 | 小舞丝袜调教喷水沦为肉奴 | 色综合久久综合网欧美综合网 | 欧美肥胖bb | 狠狠色成人综合 | 玩两个少妇女邻居 | 猫扑俩性 | 国产精品福利一区二区亚瑟 | 日本一区二区三区久久精品 | 日日骑夜夜骑 | 爱情岛论坛亚洲永久入口口 | 国产精品怡红院永久免费 | 精品国产一区二区三区在线观看 | 无人视频在线观看完整版高清 |