Intereting Posts
Проблема с пространством имен пользовательского элемента управления Android Первая сборка с AndroidStudio не выполнена Предложения для ввода мобильных разработок – чистый iPhone SDK, Android SDK, Mono Touch или Titanium? Не удалось записать файлы на sdcard android Несколько MediaPlayers не работают на Nexus 5 Как установить будильник с использованием класса будильника Android – уникальный и постоянный идентификатор устройства Android: держать предупреждение впереди, чтобы пользователь ответил Как пропустить первую строку в оформлении элементов RecyclerView для GridLayout? Android ExpandableListView – установить определенную группу в не расширяемую Используя Eclipse для androidSDK, когда я иду, я запускаю раздел WARNING: Data, который уже используется. Изменения не будут сохраняться! Используйте клавишу «ENTER» на программной клавиатуре вместо кнопки Android Espresso: как я могу протестировать определенный фрагмент при выполнении одного действия для нескольких фрагментарных архитектур Расширение сертификата приложения Android после истечения срока его действия Самый безопасный способ использования SharedPreferences

Как установить высоту элемента 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 независимо от того, в каком виде устройства.