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

В настоящее время на устройстве Android 4.3. Я использую отличный ответ, предоставленный здесь, я смог уменьшить размер шрифта отдельных элементов AlertDialog :

 <style name="AlertDialogTheme" parent="android:Theme.Dialog"> <item name="android:textSize">13sp</item> </style> 

Сам диалог построен с помощью:

 ContextThemeWrapper cw = new ContextThemeWrapper( this, R.style.AlertDialogTheme ); AlertDialog.Builder builder = new AlertDialog.Builder(cw); 

Однако проблема заключается в том, что индивидуальная высота элементов остается неизменной – на самом деле есть пятый элемент, который просто отображается при прокрутке в диалоговом окне:

Я попытался установить dividerHeight но это просто увеличило интервал. Я также установил свойство 0dp в 0dp без успеха.

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

Обратите внимание: я не хочу, чтобы все диалоговое окно было построено с помощью представления снова. Я хотел бы сохранить существующий AlertDialog.

Вот сложное решение – переопределите метод getView для ListView в AlertDialog и измените атрибуты стиля TextView программно:

 ContextThemeWrapper cw = new ContextThemeWrapper(MainActivity.this, R.style.AlertDialogTheme); AlertDialog.Builder builder = new AlertDialog.Builder(cw); AlertDialog dialog = builder.create(); dialog.setOnShowListener(new DialogInterface.OnShowListener() { @Override public void onShow(DialogInterface dialogInterface) { ListView listView = ((AlertDialog) dialogInterface).getListView(); final ListAdapter originalAdapter = listView.getAdapter(); listView.setAdapter(new ListAdapter() { @Override public int getCount() { return originalAdapter.getCount(); } @Override public Object getItem(int id) { return originalAdapter.getItem(id); } @Override public long getItemId(int id) { return originalAdapter.getItemId(id); } @Override public int getItemViewType(int id) { return originalAdapter.getItemViewType(id); } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = originalAdapter.getView(position, convertView, parent); TextView textView = (TextView) view; //textView.setTextSize(16); set text size programmatically if needed textView.setLayoutParams(new AbsListView.LayoutParams(AbsListView.LayoutParams.MATCH_PARENT, 32 /* this is item height */)); return view; } @Override public int getViewTypeCount() { return originalAdapter.getViewTypeCount(); } @Override public boolean hasStableIds() { return originalAdapter.hasStableIds(); } @Override public boolean isEmpty() { return originalAdapter.isEmpty(); } @Override public void registerDataSetObserver(DataSetObserver observer) { originalAdapter.registerDataSetObserver(observer); } @Override public void unregisterDataSetObserver(DataSetObserver observer) { originalAdapter.unregisterDataSetObserver(observer); } @Override public boolean areAllItemsEnabled() { return originalAdapter.areAllItemsEnabled(); } @Override public boolean isEnabled(int position) { return originalAdapter.isEnabled(position); } }); } }); dialog.show(); 
Intereting Posts
OnEditorActionListener вызывается дважды с одним и тем же событием на клавиатуре SenseUI Как настроить приложение только для портрета? Как я могу использовать Tesseract в Android? Как протестировать скриншоты пейджера вида в Android с помощью Espresso 2.2 Установите флажок «Запомнить меня» Android, как мне установить процентное дополнение / маржу, так что EditText имеет 10% -ный запас с обеих сторон? Проверки лицензий на серверы для Android Странная трассировка стека аварий, которая случается с редкими пользователями Android HTML5 – мягкая клавиатура перекрывает входное поле Понимание того, когда и почему использовать разные потоки Android Финишная активность не завершает работу? APV PDF Reader. Проблемы с установкой, распаковкой и оригинальной библиотекой Как преобразовать base64 в pdf? Android Nougat clipPath не работает во время анимации Android – как использовать "select last_insert_rowid ();"