如何设置ListView项目的高度

我有一个ListActivity,我想改变项目的高度指的是设备的高度

public class MainActivity extends ListActivity { . . . setListAdapter(new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1,mainMenuItems)); } 

它是我在星系链接上的ListActivity S:

在这里输入图像说明

和星系连线7: 在这里输入图像说明

我应该如何定义listview项目的高度?

Solutions Collecting From Web of "如何设置ListView项目的高度"

ListView项目高度是项目布局内容的高度,例如android.R.layout.simple_list_item_1高度。 如果你想要不同的高度,创build一个XML文件,并把一个layout_height或minHeight属性。

这是一个修改后的simple_list_item_1,它引用了你的价值

 <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" android:layout_width="match_parent" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceListItemSmall" android:gravity="center_vertical" android:paddingStart="?android:attr/listPreferredItemPaddingStart" android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" android:paddingLeft="?android:attr/listPreferredItemPaddingLeft" android:paddingRight="?android:attr/listPreferredItemPaddingRight" android:minHeight="@dimen/your_defined_minumum_height"/> 

并在你的dimen.xml中

 <dimen name="your_defined_minumum_height">48dp</dimen> 
 ListView lvLogs = new ListView(this); lvLogs.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, logs) { @Override public View getView(int position, View convertView, ViewGroup parent) { View view = super.getView(position, convertView, parent); TextView textView = ((TextView) view.findViewById(android.R.id.text1)); textView.setMinHeight(0); // Min Height textView.setMinimumHeight(0); // Min Height textView.setHeight(44); // Height return view; } }); 

注意:MinHeight和MinimumHeight是必需的!

设置最小高度为setMinHeight(?)或更高): setMinHeight(?) + setMinimumHeight(?)

然后,ListView中的TextView将具有正常的高度(小于ListView的默认值)

如果你想在像素中指定高度,那么使用setHeight(?)

您需要为ListView中的每个项目创build您自己的自定义布局文件。 在那里你可以编辑任何你想要的,你可以得到很多好处。

使用screenHeight(H)的信息自定义ListView的适配器。 假设你想要你的屏幕显示9列(项目),你可以指定他们每个的高度为H / 9。 通过这样做,无论使用哪种设备,都可以精确地控制ListView的外观。