久々に Android のネタです。ListView のカスタムは手間なので LinearLayout など使ってさくさくレイアウトしたいものです。だけど、ScrollView 内に ListView があると ListView の子どもが 1行表示になった。これは困るので対策。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | ListAdapter la = lv.getAdapter(); if (la == null) { return; } int i; int h = 0; // ListView トータルの高さ for (i = 0; i < la.getCount(); i++) { View item = la.getView(i, null, lv); item.measure(0, 0); h += item.getMeasuredHeight(); } ViewGroup.LayoutParams p = lv.getLayoutParams(); p.height = h + (lv.getDividerHeight() * (la.getCount() - 1)); lv.setLayoutParams(p); |
参照: How can I put a ListView into a ScrollView without it collapsing?