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>