如何禁用 TextInputLayout 中的即时焦点?

How to disable immediate focus in TextInputLayout?

我在 NavigationDrawer 中使用 TextInputLayout(+ 搜索)。当用户切换此抽屉时,光标焦点立即出现在 TextInputLayout 字段上。

是否可以在用户单击之前不关注此字段?

谢谢!

将其放入您的 onCreate() 中:

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

或将此添加到您的活动条目中的清单中:

android:windowSoftInputMode="stateHidden"

在您的根视图中使用此属性:

        android:focusableInTouchMode="true"

None 个答案对我有帮助。我所做的是:

editText.post(() -> {
        textInputLayout.setHintAnimationEnabled(false);
        editText.clearFocus();
        textInputLayout.setHintAnimationEnabled(true);
    });

从设计支持库 v23 开始可用。

我解决了这个问题,只需添加另一个 EditText 并隐藏它

        <EditText
          android:layout_width="0dp"
          android:layout_height="0dp" />
        <android.support.design.widget.TextInputLayout
            android:id="@+id/NghiPhep_TextInputLayout_GhiChu"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:hintTextAppearance="@style/TextHintLabel"
            android:layout_marginTop="5dp"
            android:focusableInTouchMode="true"
            >
            <EditText
                android:id="@+id/NghiPhep_txt_GhiChu"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:backgroundTint="@color/colorPrimaryDark"
                android:hint="Ghi chú"
                android:fontFamily="@font/arial_rounded"
                android:inputType="textMultiLine"
                android:singleLine="false"
                android:textSize="18sp"/>
        </android.support.design.widget.TextInputLayout>