Home > Enterprise >  Make TextInputEditText focussed by default
Make TextInputEditText focussed by default

Time:12-19

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 :)

CodePudding user response:

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>
  • Related