简体   繁体   中英

Make TextInputEditText focussed by default

I've got a bunch of TextInputEditText fields in my activity. I want the topmost one to be focussed by default. But I can't get it to work. My min SDk version is 21.

androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/black"
android:focusableInTouchMode="true"
tools:context=".MyActivity">

<com.google.android.material.textfield.TextInputLayout
    android:id="@+id/myTitle"
    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="40dp"
    android:layout_marginLeft="16dp"
    android:layout_marginRight="16dp"
    android:hint="My  Title"
    app:counterEnabled="true"
    app:counterMaxLength="20"
    app:endIconMode="clear_text"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:boxBackgroundColor="@color/black"
    android:textColorHint="@color/text_color"
    app:boxStrokeWidthFocused="2dp"
    app:boxStrokeColor="@drawable/outlined_box"
    app:hintTextColor="@color/text_color"
    android:focusedByDefault="true"
    android:focusable="true"
    app:endIconTint="@color/text_color"
    app:layout_constraintTop_toTopOf="parent">

    <com.google.android.material.textfield.TextInputEditText
        android:layout_width="match_parent"
        android:focusedByDefault="true"
        android:textColor="@color/white"
        android:layout_height="wrap_content"

        />

</com.google.android.material.textfield.TextInputLayout>
... more TextInputs

My outline box is a selector as below

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/white" android:state_focused="true"/>
    <item android:color="@color/white" android:state_hovered="true"/>
    <item android:color="@color/white" android:state_enabled="false"/>
    <item android:color="@color/text_color"/>  <!-- unfocused -->
</selector>

All examples are see online are how to turn off the default focussing:)

Try to request the focus:

<com.google.android.material.textfield.TextInputEditText
        android:layout_width="match_parent"
        android:focusedByDefault="true"
        android:textColor="@color/white"
        android:layout_height="wrap_content"

        <requestFocus />

</com.google.android.material.textfield.TextInputEditText>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM