Как изменить размер диалога перед вызовом его метода показа? - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть диалог с EditText на нем, и это с android:layout_width="wrap_content"

Прежде чем вызывать метод show, я задаю для него текст с помощью setText("Some string").

И когда вызывается метод show(), размер диалогового окна не изменяется, а текст EditText не появляется.

Есть ли способ изменить его размер перед вызовом show().

Вот код:

            Dialog dialog = new Dialog(this);
            dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
            dialog.setContentView(R.layout.dialog_supply_history);

            EditText txtStartDate = dialog.findViewById(R.id.txtStartDate);
            txtStartDate.setText(sdf.format(startDate.getTime()));
            EditText txtFinalDate = dialog.findViewById(R.id.txtFinalDate);
            txtFinalDate.setText(sdf.format(finalDate.getTime()));

            dialog.show();

Макет:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/lblStartDate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginRight="8dp"
        android:text="@string/lblStartDate"
        app:layout_constraintBaseline_toBaselineOf="@+id/txtStartDate"
        app:layout_constraintEnd_toStartOf="@+id/imgStartDate"
        app:layout_constraintStart_toStartOf="parent" />

    <ImageView
        android:id="@+id/imgStartDate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginRight="8dp"
        app:layout_constraintBottom_toBottomOf="@+id/txtStartDate"
        app:layout_constraintEnd_toStartOf="@+id/txtStartDate"
        app:layout_constraintStart_toEndOf="@+id/lblStartDate"
        app:layout_constraintTop_toTopOf="@+id/txtStartDate"
        app:srcCompat="@android:drawable/ic_menu_today" />

    <EditText
        android:id="@+id/txtStartDate"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginRight="8dp"
        android:focusable="false"
        android:inputType="date"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/imgStartDate"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/lblFinalDate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginLeft="8dp"
        android:text="@string/lblFinalDate"
        app:layout_constraintBaseline_toBaselineOf="@+id/txtFinalDate"
        app:layout_constraintStart_toStartOf="parent" />

    <ImageView
        android:id="@+id/imgFinalDate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="8dp"
        android:layout_marginRight="8dp"
        app:layout_constraintBottom_toBottomOf="@+id/txtFinalDate"
        app:layout_constraintEnd_toStartOf="@+id/txtFinalDate"
        app:layout_constraintStart_toStartOf="@+id/imgStartDate"
        app:layout_constraintTop_toTopOf="@+id/txtFinalDate"
        app:srcCompat="@android:drawable/ic_menu_today" />

    <EditText
        android:id="@+id/txtFinalDate"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginRight="8dp"
        android:focusable="false"
        android:inputType="date"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/imgFinalDate"
        app:layout_constraintTop_toBottomOf="@+id/txtStartDate" />

</android.support.constraint.ConstraintLayout>

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

Если ваш диалог был активностью, использующей другие темы диалога, вы можете попробовать установить это:

android:windowSoftInputMode="adjustResize|stateHidden"

В качестве альтернативы, вы можете обратиться к this и использовать:

alertDialog.getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
0 голосов
/ 01 ноября 2018

Попробуйте повторно вызвать ваш метод, который показывает диалог с новым макетом

...