如何在 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"