Intereting Posts
Как программно добавлять представления в представления 'Не удалось загрузить RSSupport: findLibrary возвратил null' при использовании RenderScript на эмуляторе 2.3 Нужно ли нам копировать шрифт TTF каждый раз, когда мы хотим изменить шрифт в приложении Поиск всей базы данных SQLite с использованием FTS3 / FTS4? Как моделировать рендеринг и поведение игрового объекта модульным способом? Как проверить, доступен ли ресурс, указанный Ури? Плагин IntelliJ Android: подавить генерацию BuildConfig.java или изменить, где она написана? Предоставлять услуги и разрешения манифеста Как установить совместное слово Gujarati в Android? Как заблокировать ориентацию приложения Android в портретном режиме? Как скрыть полосы прокрутки в Android WebView через React Native Android – Пользовательский цвет фона предупреждений Android EditText.setError () дает невидимый текст ошибки Как сделать admob работать с версией Android версии <= 3.2? Android Widget для Android: настройка Android: отслеживание приводит к тому, что большой палец и дорожка не отображаются

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