如何在 android 中使 TextInputEditText 默认不聚焦?
How to make a TextInputEditText unfocused by default in android?
我已经创建了注册表单,我希望 activity 启动时没有文本字段自动获得焦点。我已尝试添加到我的所有文本字段,但它不起作用。
android:focusedByDefault="false"
XML输出
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/bio"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginVertical="3dp"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Bio"
android:inputType="textLongMessage"
android:minLines="3"
android:transitionName="logo_username"
android:focusedByDefault="false"/>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:passwordToggleEnabled="true"
android:layout_marginVertical="3dp"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
app:counterEnabled="true"
app:counterMaxLength="10">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:hint="Password"
android:transitionName="logo_username"
android:focusedByDefault="false"/>
</com.google.android.material.textfield.TextInputLayout>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="LOGIN"
android:textColor="@color/white"
android:background="@color/black"
android:transitionName="logo_button"
android:focusedByDefault="true"/>
在 android 中,焦点自动设置为具有可聚焦 属性 的第一个根元素。解决方法是为您的容器元素启用可聚焦 属性,页面将聚焦它而不是第一个输入元素,从而触发键盘。您必须将 focusable=true
(键入它,因为它在选项中不可用)和 focusableInTouchMode=true
设置为直接父容器。
尝试将其添加到根布局。
android:focusableInTouchMode="true"
或在清单中的 activity 标签内添加此代码
android:windowSoftInputMode="stateUnchanged"
我已经创建了注册表单,我希望 activity 启动时没有文本字段自动获得焦点。我已尝试添加到我的所有文本字段,但它不起作用。
android:focusedByDefault="false"
XML输出
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/bio"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginVertical="3dp"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Bio"
android:inputType="textLongMessage"
android:minLines="3"
android:transitionName="logo_username"
android:focusedByDefault="false"/>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:passwordToggleEnabled="true"
android:layout_marginVertical="3dp"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
app:counterEnabled="true"
app:counterMaxLength="10">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:hint="Password"
android:transitionName="logo_username"
android:focusedByDefault="false"/>
</com.google.android.material.textfield.TextInputLayout>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="LOGIN"
android:textColor="@color/white"
android:background="@color/black"
android:transitionName="logo_button"
android:focusedByDefault="true"/>
在 android 中,焦点自动设置为具有可聚焦 属性 的第一个根元素。解决方法是为您的容器元素启用可聚焦 属性,页面将聚焦它而不是第一个输入元素,从而触发键盘。您必须将 focusable=true
(键入它,因为它在选项中不可用)和 focusableInTouchMode=true
设置为直接父容器。
尝试将其添加到根布局。
android:focusableInTouchMode="true"
或在清单中的 activity 标签内添加此代码
android:windowSoftInputMode="stateUnchanged"