Intereting Posts
В файле R отсутствует андроид Как использовать универсальный загрузчик изображений для списка видео эскизов в android? Приложение Android для приостановки / возобновления музыки другого приложения музыкального плеера Android Dev – сторонние медиаплееры SDK или другие варианты? Два меню Android-приложения Создайте окна SD-карты устройства, загружаемые приложением Android. Как загрузить массив строки во фрагмент? Несколько строк на кнопке Какова взаимосвязь между задачами и задним стеком Xamarin.Droid вызывает ошибки сборки в Visual Studio 2015 при использовании Xamarin.Forms RecyclerView LayoutManager различает количество строк в разных строках OnItemClick дает индекс / позицию элемента на видимой странице … не фактический индекс элемента в списке ..issue при включении setTextFilterEnabled Каковы общие проблемы, которые испытывают небольшие группы разработки Android? Загрузить изображение на vk.com Как создать и отредактировать файл электронной таблицы на Google Диске, используя API Диска Google только из моего приложения для Android?

Кнопки диалогового окна предупреждения отключены

У меня есть диалоговое окно предупреждения, которое запускается, когда кто-то касается конкретной кнопки. Диалоговое окно предупреждения содержит представление, которое определяется XML-файлом макета. Этот макет содержит несколько элементов управления, таких как флажки, редактирование текстовых полей … Эти элементы управления находятся внутри экрана scrool, чтобы вы могли прокручивать содержимое, если весь контент не подходит на экране.

Проблема в том, что, когда я запускаю это диалоговое окно с предупреждением, кнопки внизу снижаются. Напротив, панель scrool работает, и я могу прокручивать содержимое диалогового окна предупреждения, кнопки диалогового окна предупреждения иногда не полностью видны.

Это означает: иногда все хорошо, и я вижу кнопки диалогового окна предупреждения, иногда по странной причине, кнопки обрезаны. Я думаю, что проблема заключается в том, что большой для диалогового окна предупреждения и нажатия кнопок больше. Например, представление содержит текстовое управление редактирования. Если я введу свое имя, все в порядке. Но если я добавлю новую строку в этот текст редактирования, кнопки начнут немного обрезаться. Что я не так? Я думал, что вид прокрутки будет обрабатывать негабаритный вид моего представления, чтобы диалоговое окно предупреждения соответствовало экрану. Мое приложение всегда в портретном режиме.

Код представления:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/scrollView2" android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="5dp" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/bitteeinstellungenwaehlen" /> <EditText android:id="@+id/edtTeam1" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:hint="@string/hteam1" android:text="Christoph" > <requestFocus /> </EditText> <EditText android:id="@+id/edtTeam2" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:hint="@string/hteam2" android:text="Lea" /> <EditText android:id="@+id/edtTeam3" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:hint="@string/hteam3" android:text="Ludwig" /> <EditText android:id="@+id/edtTeam4" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:hint="@string/hteam4" android:text="Anja" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/weitereeinstellungen" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <CheckBox android:id="@+id/chkModerationMode" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/moderationsmodus" /> <TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:text="@string/info" /> </LinearLayout> <CheckBox android:id="@+id/chkPassOver" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true" android:text="@string/weitergeben" /> <CheckBox android:id="@+id/chkBlackScreen" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/blankscreen" /> </LinearLayout> </ScrollView> 

И вот как я запускаю диалоговое окно предупреждения:

  final AlertDialog.Builder alert = new AlertDialog.Builder(QuizEditor.this); alert.setTitle(getString(R.string.speichernUndVorschau) + "..."); alert.setMessage(""); LayoutInflater inflater = LayoutInflater.from(QuizEditor.this); final View layFrage = inflater.inflate(R.layout.layoutquizsettings,null); alert.setView(layFrage); final CheckBox chkModeration = (CheckBox) layFrage.findViewById(R.id.chkModerationMode); final CheckBox chkPassOver = (CheckBox) layFrage.findViewById(R.id.chkPassOver); final CheckBox chkBlackScreen = (CheckBox) layFrage.findViewById(R.id.chkBlackScreen); final EditText edtTeam1 = (EditText) layFrage.findViewById(R.id.edtTeam1); final EditText edtTeam2 = (EditText) layFrage.findViewById(R.id.edtTeam2); final EditText edtTeam3 = (EditText) layFrage.findViewById(R.id.edtTeam3); final EditText edtTeam4 = (EditText) layFrage.findViewById(R.id.edtTeam4); alert.setNeutralButton(getString(R.string.speichernUndVorschau), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { } }); alert.setNegativeButton(getString(R.string.abbrechen), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { // Canceled. } }); final AlertDialog dialog2 = alert.create(); dialog2.setOnShowListener(new OnShowListener() { @Override public void onShow(DialogInterface dialog) { // TODO Auto-generated method stub Button btnStarten = (Button) dialog2.getButton(AlertDialog.BUTTON_NEUTRAL); btnStarten.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub ArrayList<String> teams = new ArrayList<String>(); String team1 = edtTeam1.getText().toString().trim(); String team2 = edtTeam2.getText().toString().trim(); String team3 = edtTeam3.getText().toString().trim(); String team4 = edtTeam4.getText().toString().trim(); if(team1.length() > 0) teams.add(team1); if(team2.length() > 0) teams.add(team2); if(team3.length() > 0) teams.add(team3); if(team4.length() > 0) teams.add(team4); if(teams.size() == 0) { Toast.makeText(QuizEditor.this, getString(R.string.keinteameingegeben), Toast.LENGTH_SHORT).show(); } else { // Quiz starten dialog2.dismiss(); Intent myIntent; if(chkBlackScreen.isChecked()) { myIntent = new Intent(QuizEditor.this, BlackScreen.class); } else // Direkt das Quiz starten { myIntent = new Intent(QuizEditor.this, Quiz.class); } myIntent.putStringArrayListExtra("teams", teams); myIntent.putExtra("moderation", chkModeration.isChecked()); myIntent.putExtra("passover", chkPassOver.isChecked()); myIntent.putExtra("filename", filename); QuizEditor.this.startActivity(myIntent); } } }); } }); dialog2.show(); // dialog2.getWindow().setLayout(LayoutParams.WRAP_CONTENT, 300); 

Мне жаль немецких слов. На изображении вы можете увидеть проблему. К сожалению, мне не разрешили загружать скриншоты, которые я сделал …

Настройте строки EditText на 1. Также установите для внешнего LinearLayout значение fill_parent.

Просто сделайте все свойство EditText android:singleLine="true" а затем попробуйте протестировать.

Вопрос уже был решен в комментариях, но я добавлю ответ за полноту и покажу, что это сработало и для меня.

Для AlertDialog с пользовательским представлением не используйте строку .setMessage . Удаление следующей строки в моем проекте заставило кнопки перестать обрезаться.

 .setMessage("This is my message")