Nano Hash - криптовалюты, майнинг, программирование

Мой Android AlertDialog не движется вверх, когда отображается клавиатура

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

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, диалоговое окно не выдвигается, поэтому кнопки внизу заблокированы:

Перед клавиатурой

После клавиатуры

Странно то, что текст внутри диалога выдвигается вверх... а окно нет :(.

Что я пробовал:

  1. <android:windowSoftInputMode="adjustPan"> Я добавил это в manifest.xml и заметил, что диалоговое окно по-прежнему не перемещается вверх.

  2. <activity android:windowSoftInputMode="adjustPan|adjustResize"> </activity> Я тоже пробовал это, но это все еще не имеет никакого эффекта.

  3. getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); Я также пробовал это, но безуспешно, происходит то же самое, диалог не перемещается вверх, но текст внутри выталкивается вверх.
  4. Ничего не пробовал (поэтому не объявлял в манифесте или .setSoftInputMode(...)) Я вижу то же поведение, поэтому не думаю, что шаги 1,2,3 в любом случае повлияли.

Поэтому я перепробовал все, что мог найти на этом сайте, и я изо всех сил пытаюсь найти решение. Я чувствую, что проблема как-то связана с макетом.

Если кто-нибудь может помочь мне найти решение, которое было бы здорово.

Спасибо


Ответы:


1

Я исправил :D.

Итак, единственная проблема заключалась в том, что я использовал конструктор конструктора (Activity..., Theme...).

Использование конструктора (Activity...) (без темы) сработало! Я думаю, потому что он выбирает настройки темы из этого действия.

17.11.2015
  • Добавляя к этому ответу, поскольку он, похоже, является той же проблемой, что и этот вопрос, важной частью является то, что тема, заданная для билдер не должен иметь полупрозрачную строку состояния. 16.04.2018
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..