我有一个编辑文本。我在xml布局中设置了focusable = false。但是当我点击一个按钮时,我希望它再次获得焦点,我现在可以编辑文本。但是即使设置了focusable = true,我也无法做到这一点。
<EditText
android:id="@+id/et_display_name"
android:layout_width="0dp"
android:layout_height="44dp"
android:layout_marginTop="40dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:background="@drawable/profile_shape"
android:text="Display Name"
android:textColor="@color/grey"
android:inputType="textPersonName"
android:cursorVisible="false"
android:focusable="false"
android:maxLines="1"
android:maxLength="30"
android:textSize="20sp"
android:gravity="fill"
android:paddingStart="16dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/iv_profilePic" />
即使在这样做之后,我也无法编辑文本,因为光标不可见,键盘也没有弹出。
etDisplayName.focusable = View.FOCUSABLE
etDisplayName.requestFocus()
etDisplayName.isCursorVisible = true
1条答案
按热度按时间xoshrz7s1#
要使EditText再次可编辑,您需要将focusable属性设置为true,并将cursorVisible属性设置为true。您可以在Activity或片段中以编程方式完成此操作。
下面是一个示例代码片段:
使用此代码,您应该能够点击按钮,EditText将再次变为可编辑状态,光标可见,键盘弹出。