Некоторое время go Я столкнулся с проблемой с AlertDialog:
Если он используется с адаптером списка (через setAdpater / setSingleChoiceItems / setMultiChoiceItems) и пользовательским представлением (через setView) и иногда с кнопками, а также списком слишком длинный и не соответствует высоте диалога, мой пользовательский добавленный вид и кнопки диалога не отображались ... (он отображается, но не виден, поскольку перемещен вниз по списку) вот тестовый код:
final int TEST_COUNT = 20; //increase it if list fit your screen...
List<String> list = new LinkedList<>();
for (int i = 1; i <= TEST_COUNT; i++)
list.add("item "+i);
TextView testView = new TextView(this); //type of view doesn't matter
testView.setText("test view");
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.select_dialog_item, list);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
AlertDialog dialog = builder
.setTitle("Test AlertDialog")
.setAdapter(adapter, (dlg, which) -> {})
.setView(testView) //this line broke all!
.setPositiveButton("Yes", (dlg, which) -> dlg.dismiss())
.setNegativeButton("No", (dlg, which) -> dlg.dismiss())
.show();
Я искал в Google и SO, но не нашел рабочего решения, только одно предложение - написать свой собственный диалог с пользовательским макетом ... И я решил найти правду.