Android simple_list_item_single_choice以编程方式设置默认高度

时间:2013-09-21 07:41:09

标签: android android-listview

我正在使用simple_list_item_single_choice作为我的listview项目。

以下是示例代码

view = mInflater.inflate(android.R.layout.simple_list_item_single_choice, null);
final CheckedTextView title = (CheckedTextView) view.findViewById(android.R.id.text1);

这很好用,但我的listview项目不能很好地显示...我的意思是项目的高度正好是内容高度... 我希望它被填充,就像我使用simple_list_item1但我需要它与选择无线电。

如何设置这个漂亮的最小高度?它应该是默认的48 dip 试图设置title.setMinimumHeight(48),但没有运气。

编辑:我知道这可以通过自定义布局实现,但这正是我想要避免的。

谢谢!

2 个答案:

答案 0 :(得分:0)

不要使用android.R.layout.simple_list_item_single_choice创建自定义布局并使用。在自定义布局中,您可以轻松设置高度和宽度。

答案 1 :(得分:0)

我的回答很晚,也许你解决了这个问题......我解决了以下问题:

int getListViewHeight(ListView list) {
    ListAdapter adapter = list.getAdapter();

    list.measure(View.MeasureSpec.makeMeasureSpec(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
    int listviewHeight = list.getMeasuredHeight() * adapter.getCount() + (adapter.getCount() * list.getDividerHeight());

    return listviewHeight;
}

使用:

ListView listView = (ListView) findViewById(R.id.yourlistviewId);
listView.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, getListViewHeight(listView)));

Listview应该在LinearLayout中。如果在不同的布局中,必须修改为LinearLayout.LayoutParams

良好的编码:)