EditText Keyboard Focusable

بِسْمِ اللّهِ الرَّحْمَنِ الرَّحِيْمِ

 

Mungkin tutorial yang banyak dicari yakni menghilangkan focus EditText ketika activity pertama kali dimulai, cara yang banyak dipakai dengan menambahkan kode android:focusable="true" dan android:focusableInTouchMode="true" di parent layout sehingga focusnya beralih ke view lain saat layout di request, tapi case ana kali ini justru EditText nya yg kehilangan focus secara default, qoddarullah penyebabnya belum diketahui sampai tulisan ini di publish sementara ini. Adapun layout nya seperti ini :

 

<?xml version="1.0" encoding="utf-8"?>
<androidx.core.widget.NestedScrollView 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"
    tools:context=".presentation.LoginActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

            <FrameLayout
                android:id="@+id/flUsername"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@drawable/bg_work_list"
                android:paddingLeft="17dp"
                android:paddingTop="13dp"
                android:paddingRight="17dp"
                android:paddingBottom="13dp">

                <EditText
                    android:descendantFocusability="beforeDescendants"
                    android:focusable="true"
                    android:focusableInTouchMode="true"
                    android:id="@+id/etUsername"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:background="@null"
                    android:fontFamily="@string/fontFamily_roboto_regular"
                    android:singleLine="true"
                    android:hint="Username"
                    android:textColorHint="@color/color_hint_et"
                    android:textColor="@color/hitam_one"
                    android:textSize="16sp" />

            </FrameLayout>

    </LinearLayout>

</androidx.core.widget.NestedScrollView>

 

Jadi meskipun ana request focus pada EditText tetap tidak bekerja sebagaimana mestinya. Solusinya ana pasang state keyboard (android:windowSoftInputMode="stateVisible") pada activitynya di manifest, seperti ini :

 

        <activity
            android:name=".presentation.LoginActivity"
            android:exported="true"
            android:windowSoftInputMode="stateVisible|adjustResize">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

 

Ini juga bisa menjadi alternatif untuk menyembunyikan pop up keyboard (android:windowSoftInputMode="stateHidden") saat pertama activity launch seperti yang ana singgung di muqoddimah.

 

Demikian, Semoga yang singkat, padat akan manfaat dan terpenting Semoga Allah senantiasa memberi kita tawfik, Aamiiin.

 

اَللّٰهُ أَعْلَم‎

Share this:

Tidak ada komentar