1. ホーム
  2. android

[解決済み] 編集画面でのキーパッドのポップアップを無効にするには?

2023-03-02 13:43:28

質問

私のアプリでは、すべての画面の最初のビューは EditText なので、画面に移動するたびに画面上のキーパッドがポップアップします。このポップアップを無効にし、EditText を手動でクリックしたときに有効にするにはどうしたらよいでしょうか。

    eT = (EditText) findViewById(R.id.searchAutoCompleteTextView_feed);

    eT.setOnFocusChangeListener(new OnFocusChangeListener() {

        public void onFocusChange(View v, boolean hasFocus) {

            if(hasFocus){
            InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
            imm.hideSoftInputFromWindow(eT.getWindowToken(), 0);
            }
        }
    });

xmlのコードです。

<ImageView
    android:id="@+id/feedPageLogo"
    android:layout_width="45dp"
    android:layout_height="45dp"
    android:src="@drawable/wic_logo_small" />

<Button
    android:id="@+id/goButton_feed"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:text="@string/go" />

<EditText
    android:id="@+id/searchAutoCompleteTextView_feed"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_toLeftOf="@id/goButton_feed"
    android:layout_toRightOf="@id/feedPageLogo"
    android:hint="@string/search" />

<TextView
    android:id="@+id/feedLabel"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/feedPageLogo"
    android:gravity="center_vertical|center_horizontal"
    android:text="@string/feed"
    android:textColor="@color/white" />

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ButtonsLayout_feed"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true" >

    <Button
        android:id="@+id/feedButton_feed"
        android:layout_width="wrap_content"
        android:layout_height="30dp"
        android:layout_margin="0dp"
        android:layout_weight="1"
        android:background="@color/white"
        android:text="@string/feed"
        android:textColor="@color/black" />

    <Button
        android:id="@+id/iWantButton_feed"
        android:layout_width="wrap_content"
        android:layout_height="30dp"
        android:layout_margin="0dp"
        android:layout_weight="1"
        android:background="@color/white"
        android:text="@string/iwant"
        android:textColor="@color/black" />

    <Button
        android:id="@+id/shareButton_feed"
        android:layout_width="wrap_content"
        android:layout_height="30dp"
        android:layout_margin="0dp"
        android:layout_weight="1"
        android:background="@color/white"
        android:text="@string/share"
        android:textColor="@color/black" />

    <Button
        android:id="@+id/profileButton_feed"
        android:layout_width="wrap_content"
        android:layout_height="30dp"
        android:layout_margin="0dp"
        android:layout_weight="1"
        android:background="@color/white"
        android:text="@string/profile"
        android:textColor="@color/black" />
</LinearLayout>

<ListView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/feedListView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_above="@id/ButtonsLayout_feed"
    android:layout_below="@id/feedLabel"
    android:textSize="15dp" >
</ListView>

3番目のビュー(EditText)がフォーカスが当たっているところです。

どのように解決するのですか?

最適な解決策は、プロジェクト マニフェスト ファイルにある (AndroidManifest.xml) で、次の属性を追加します。 activity を構成します。

android:windowSoftInputMode="stateHidden"


例です。

    <activity android:name=".MainActivity" 
              android:windowSoftInputMode="stateHidden" />

説明

  • アクティビティがユーザーの注目の的になったときのソフト キーボードの状態 (非表示か表示か)。
  • アクティビティのメイン ウィンドウに行われる調整 - ソフト キーボードのためのスペースを作るために小さくリサイズされるか、またはウィンドウの一部がソフト キーボードによってカバーされているときに現在のフォーカスを可視化するためにそのコンテンツがパンされるかどうか。

で紹介されました。

  • API レベル 3。

ドキュメントへのリンク

注意 ここで設定した値("stateUnspecified" と "adjustUnspecified" 以外)は、テーマで設定した値より優先されます。