1. ホーム
  2. android

[解決済み] Androidダイアログ。タイトルバーの削除

2022-10-01 12:28:43

質問

原因が特定できない奇妙な動作があります。

私のアプリはクラシック

requestWindowFeature(Window.FEATURE_NO_TITLE);

で、タイトル/ステータスバーを削除します。

次に、ユーザーが情報(名前など)を入力できるように、ダイアログボックスを作成します。

物理キーボードでは問題ないのですが、仮想キーボードを使用すると、奇妙な動作が発生します。

仮想キーボードでキーを打つたびに、タイトル/ステータス バーが再表示され、すべてのキーボード レイアウトが押し出され、その後再び消えます (ちょうどアプリケーションを起動したときのアニメーションのような感じです)。

ここにいくつかのコードがあります。

        dialog = new Dialog(context);
        dialog.setContentView(R.layout.logindialog);
        dialog.setTitle("Login:");

        WindowManager.LayoutParams a = dialog.getWindow().getAttributes();

//      dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

        a.dimAmount = 0;
        dialog.getWindow().setAttributes(a);

        dialog.setCancelable(true);
        dialog.getWindow().setLayout(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT);

で、次に

dialog.show();

私は

dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

が、アプリがクラッシュしてしまいます。

以下はxmlです。

    <TextView android:id="@+id/LoginText"
        android:gravity="fill"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Login:">
    </TextView>         
    <EditText android:id="@+id/LoginEdit"
        android:layout_height="wrap_content"
        android:singleLine="true"
        android:text="jason"
        android:layout_width="200sp"/>
    <TextView android:id="@+id/PasswordText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Password:">
    </TextView>         
    <EditText android:id="@+id/PasswordEdit"
        android:layout_height="wrap_content"
        android:singleLine="true"
        android:text="welcome"
        android:layout_width="200sp"
        android:password="true"/>
<LinearLayout 
    android:id="@+id/test2"
    android:gravity="center_horizontal"
    android:orientation="horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
<Button android:id="@+id/LoginButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:text="Login" />
<Button android:id="@+id/CreateButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:text="Create" />
<Button android:id="@+id/CancelLogin"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:text="Cancel" />
</LinearLayout>/>

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

を使用します。

dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); //before     
dialog.setContentView(R.layout.logindialog);