0

プログラムで ListItems の高さを設定するにはどうすればよいですか?また、プログラムで ListItems を作成するにはどうすればよいですか? 現在、カスタム アダプターでカスタム ListItem.xml を使用していますが、ListItem の高さは固定されています。ListItems には同じ内容がないため、未使用のスペースが大量に作成されます。この問題の解決策はありますか?

4

2 に答える 2

0

これを試して:

 int totalHeight = 0;
    int desiredWidth = MeasureSpec.makeMeasureSpec(listView.getWidth(),    MeasureSpec.AT_MOST);
    for (int i = 0; i < listAdapter.getCount(); i++) {
        View listItem = listAdapter.getView(i, null, listView);
        listItem.measure(desiredWidth, MeasureSpec.UNSPECIFIED);
        totalHeight += listItem.getMeasuredHeight();
    }

    ViewGroup.LayoutParams params = listView.getLayoutParams();
    params.height = totalHeight + (listView.getDividerHeight() *  (listAdapter.getCount() - 1));
    listView.setLayoutParams(params);
    listView.requestLayout();

そして、これがあなたに役立つこのリンクを参照してください http://kk-brothers.blogspot.in/2011/09/dynamically-change-listview-height.html

于 2013-02-14T12:40:04.100 に答える
0

カスタム配列アダプターを使用する必要があり、アイテムのコンテンツに応じて、itemView の高さを変更できます。グーグルでいくつかの例を見つけることができます。

http://sogacity.com/how-to-make-a-custom-arrayadapter-for-listview/

http://devtut.wordpress.com/2011/06/09/custom-arrayadapter-for-a-listview-android/

arrayAdapter では、フィールドがあるかどうかを確認し、この「フィールド ビュー」の高さ = 0、または View.INVISIBLE を設定できます。

より説明的なバージョンを編集します。

アダプターには次のものがあります。getView(int position, View convertView, ViewGroup parent)

必要に応じて変更して、convertView高さを増減できます。コードを投稿しないと、申し訳ありません。

于 2013-02-14T12:20:06.393 に答える