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

服務(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ì)大家有所幫助!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 五月婷婷俺也去开心 | 免费高清视频日本 | 美女做又爽又黄又猛 | 青青青青青国产免费手机看视频 | 四虎影视在线影院在线观看观看 | 青青草成人在线 | 99国产精品热久久久久久夜夜嗨 | 国产精品色爱综合网 | 美女林柏欣21p人体之仓之梦 | 99久久精品免费观看区一 | 日本漫画工囗全彩番在线 | 欧美日韩一区二区三区韩大 | 国产一区二区免费视频 | 无码中文字幕av免费放 | 91大神在线观看精品一区 | 国产精品久久久久影院色老大 | 亚洲精品6久久久久中文字幕 | 国产一区二区免费福利片 | 日本五级床片全都免费播放 | 欧美日韩免费一区二区在线观看 | 欧美女孩videos | 久久亚洲午夜牛牛影视 | 久久综合久综合久久鬼色 | 手机av| 国产第一页无线好源 | 男女真实无遮挡xx00动态图软件 | 草草草草视频 | 国产精品美女福利视频免费专区 | 魔镜号中文字幕 | 99视频免费 | 欧美成人在线影院 | 日韩一级生活片 | 亚洲AV人无码综合在线观看蜜桃 | 无人在线视频高清免费观看动漫 | 日韩国产欧美成人一区二区影院 | 天天白天天谢天天啦 | 亚洲国产视频网站 | 白丝美女用胸伺候主人 | 黑人群性xxx | 91亚洲精品第一综合不卡播放 | 韩国最新理论三级在线观看 |