Итак, у меня есть диалоговое окно с предупреждением, которое я вызываю из действия при нажатии кнопки:
Button editLocation = (Button) itemView.findViewById(R.id.edit_trained_location_button);
editLocation.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
showEditLocationDialog();
}
});
public void showEditLocationDialog(){
LayoutInflater inflater = activity.getLayoutInflater();
AlertDialog.Builder builder =
new AlertDialog.Builder(activity, R.style.AppTheme);
builder.setTitle("Edit Location name");
builder.setPositiveButton("Save", null);
builder.setNegativeButton("Cancel", null);
builder.setView(inflater.inflate(R.layout.location_dialog, null));
Window newLocationDialog = builder.show().getWindow();
newLocationDialog.setLayout(DpToPxHelper.convertToPx(350, activity),
DpToPxHelper.convertToPx(175, activity));
newLocationDialog.setDimAmount(.8f);
newLocationDialog.addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
}
Вот файл макета.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:isScrollContainer="false"
android:id="@+id/location_name_edit_text"
android:inputType="text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
android:layout_marginBottom="4dp"/>
</LinearLayout>
(Кнопки определены в конструкторе, макет позволяет мне создать только поле EditText).
Итак, моя проблема заключается в том, что когда я вызываю клавиатуру для ввода текста в поле EditText, диалоговое окно не выдвигается, поэтому кнопки внизу заблокированы:
Странно то, что текст внутри диалога выдвигается вверх... а окно нет :(.
Что я пробовал:
<android:windowSoftInputMode="adjustPan">
Я добавил это в manifest.xml и заметил, что диалоговое окно по-прежнему не перемещается вверх.<activity android:windowSoftInputMode="adjustPan|adjustResize"> </activity>
Я тоже пробовал это, но это все еще не имеет никакого эффекта.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
Я также пробовал это, но безуспешно, происходит то же самое, диалог не перемещается вверх, но текст внутри выталкивается вверх.- Ничего не пробовал (поэтому не объявлял в манифесте или .setSoftInputMode(...)) Я вижу то же поведение, поэтому не думаю, что шаги 1,2,3 в любом случае повлияли.
Поэтому я перепробовал все, что мог найти на этом сайте, и я изо всех сил пытаюсь найти решение. Я чувствую, что проблема как-то связана с макетом.
Если кто-нибудь может помочь мне найти решение, которое было бы здорово.
Спасибо