Android: ScrollView 内にある ListView の高さが 1行になるのを回避する

久々に Android のネタです。ListView のカスタムは手間なので LinearLayout など使ってさくさくレイアウトしたいものです。だけど、ScrollView 内に ListView があると ListView の子どもが 1行表示になった。これは困るので対策。

[cc lang=”java” width=”100%” height=”auto” line_numbers=”true” theme=”blackboard” nowrap=”false”]
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); [/cc]

参照: How can I put a ListView into a ScrollView without it collapsing?

Loading Facebook Comments ...

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です