我有一个带有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>
答案 0 :(得分:0)
尝试重新调用显示具有新布局的对话框的方法
答案 1 :(得分:0)
如果您的对话框是使用其他对话框主题的活动,则可以尝试设置以下内容:
android:windowSoftInputMode="adjustResize|stateHidden"
或者,您可以参考this并使用:
alertDialog.getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);