Как установить высоту элемента ListView

У меня есть ListActivity, который я хочу изменить Высота элемента относится к высоте устройства

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

Его моя ListActivity на галактике nexus S:

Введите описание изображения здесь

И по галактике nexus 7: Введите описание изображения здесь

Как я должен определять высоту элементов списка?

Solutions Collecting From Web of "Как установить высоту элемента ListView"

Высота элементов ListView – это высота содержимого макета элемента, например высота android.R.layout.simple_list_item_1. Если вы хотите разную высоту, создайте 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 !!!

Установите минимальную высоту 0 ~ 20 (или выше): setMinHeight(?) + setMinimumHeight(?)

Тогда TextView в ListView будет иметь нормальную высоту (меньше, чем по умолчанию ListView)

Если вы хотите setHeight(?) высоту в пикселе, используйте setHeight(?)

Вам необходимо создать свой собственный файл макета для каждого элемента в ListView. Там вы можете редактировать все, что захотите, и вы можете получить много преимуществ.

Настройте адаптер для вашего ListView с информацией screenHeight (H). Учитывая, что вы хотите, чтобы на вашем экране отображалось 9 столбцов (элементов), вы можете указать высоту каждого из них как H / 9. При этом вы можете точно контролировать внешний вид вашего ListView независимо от того, в каком виде устройства.