web-dev-qa-db-ja.com

Android Pie(API-28)でアクティビティに入るとキーボードが表示されない

メールログイン画面に入ると、デバイスのキーボードをポップアップしたいのですが。

AndroidManifest.xmlファイルでwindowSoftInputMode"stateVisible"に宣言しました:

<activity
        Android:name=".activities.EmailLoginActivity"
        Android:launchMode="singleTask"
        Android:screenOrientation="portrait"   
        Android:windowSoftInputMode="stateVisible" />

私はこれに従いました ドキュメント

結果:

Android APIを実行するデバイスでは、キーボードが表示されます。

Android API 28を実行するデバイスでは、キーボードは表示されません。

Android Pieのバグですか?

なにか提案を?

10
Elnatan Derech

Android Pie(API 28)のようですが、EditTextにリクエストフォーカスを自動的に設定していません。

つまり、requestFocusEditTextをプログラムまたはXMLファイルで設定する必要があります。

your_layout.xml

<EditText
        Android:id="@+id/et_email"
        Android:layout_width="0dp"
        Android:layout_height="wrap_content"
        Android:layout_marginTop="@dimen/_20sdp"
        Android:inputType="textEmailAddress"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <requestFocus />
    </EditText>

[〜#〜]または[〜#〜]

your_activity.Java

findViewById(R.id.et_email).requestFocus();
24
Viraj Patel

幅と高さが0dpの非表示のEditTextを使用すると、API 28パイでは機能しません。寸法を1dpに設定し、ウィジェットのすべての部分を透明に設定することで機能させることができました。これは私のために働きました:

<EditText
        Android:id="@+id/hacked_edit_text"
        Android:layout_width="1dp"
        Android:layout_height="1dp"
        Android:background="@Android:color/transparent"
        Android:cursorVisible="false"
        Android:textColor="@Android:color/transparent" />
1

Android Pieについても同様に問題がありました。.requestFocus()が機能しませんでした。

私の問題の解決策:

EditTextが実際に表示されていることを確認してください。私はEditTextを非表示フィールドとして使用し、幅と高さを0から1dpに設定した後にのみキーボードが表示されました。

1
Arieck

公式ドキュメント でうまく文書化されています:

fun showSoftKeyboard(view: View) {
    if (view.requestFocus()) {
        val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
        imm.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT)
    }
}
0
David Vávra

私の問題は、デバイスのキーボード設定にありました。言語とデフォルトのキーボードを入力し、私の場合はサムスンのデバイスキーボードに変更します。

enter image description here

0
mohamed elagamy