1

この疑問の答えはきっとどこかにあると思いますが、見つけられませんでした...

カスタム AlertDialog があり、XML ファイルや Java コードで設定したパラメータに関係なく、ダイアログは常に全画面幅で表示されます。

現在、私のレイアウトファイルは次のようになっています。

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/color_picker_dlg_root"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >

<TableRow>
[...]
</TableRow>
</TableLayout>

次のようなコードで AlertDialog を作成します。

layout = inflater.inflate(R.layout.color_picker_dlg, (ViewGroup) findViewById(R.id.color_picker_dlg_root));
builder = new AlertDialog.Builder(this);
builder.setView(layout);
[...]
dialog = builder.create();

...そして、ダイアログはまだすべての画面幅を占めています。

コンテンツをラップするにはどうすればよいですか?

前もって感謝します。

4

1 に答える 1

0

ダイアログにも同じ問題がありました。それを治すには、ダイアログをダイアログテーマで設定する必要がありました。アラートダイアログでそれを行う方法はわかりませんが、通常のダイアログのコードをここに示します。

    dialog = new Dialog(context, R.style.CustomDialog);
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    dialog.setContentView(R.layout.dialog_custom_blank);
    dialog.setCancelable(isCancelable);

そして、これが CustomDialog テーマです

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="CustomDialog" parent="android:Theme.Dialog">

      <item name="android:layout_width">wrap_content</item>
      <item name="android:layout_height">wrap_content</item>
      <item name="android:windowIsFloating">true</item>
      <item name="android:windowNoTitle">true</item>

    </style>

</resources>

ダイアログに入って、独自の再利用可能なカスタム ダイアログを作成したい場合は、私の Web サイトのチュートリアルをチェックしてください。

http://www.androidianlabs.com/custom-android-dialogs.html

于 2012-11-08T23:04:07.983 に答える