2

alertdialog ビルダーを使用してアラート ダイアログを作成しました。ダイアログの左右のスペースを削除したい...基本的には左右に広げます。ダイアログの代わりにアクティビティを作成できることはわかっていますが、ボタン スタイルを保持したいので、そのボタン スタイルをアクティビティに実装するには、さまざまな SDK のレイアウトを作成する必要があり、長期的には不便です。

なぜ全幅が必要なのですか?AdMob 広告を表示する必要があり、全幅でないと広告が読み込まれないためです。

あらゆる種類のテーマプロパティを試したので、助けていただければ幸いです...

ありがとう、エイドリアン

PS: ダイアログを作成するための現在のコードは次のとおりです。

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(new ContextThemeWrapper(this, R.style.DialogTheme));
    alertDialogBuilder.setInverseBackgroundForced(true);
    LayoutInflater inflater = this.getLayoutInflater();
    View view = inflater.inflate(R.layout.dial_dialog, null);

    AdView adView = (AdView) view.findViewById(R.id.adView);
    if (!application.getLicense().isValid()) {
        adView.loadAd(new AdRequestWrapper(this));
    }

    alertDialogBuilder.setView(view);
    alertDialogBuilder.setTitle(R.string.dial_dialog_title).setCancelable(false);
    alertDialogBuilder.setPositiveButton(R.string.dial_dialog_message_positive_text, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            dialog.dismiss();
        }
    });
    alertDialogBuilder.setNeutralButton(R.string.dial_dialog_message_neutral_text, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            dialog.dismiss();
        }
    });
    alertDialogBuilder.setNegativeButton(R.string.dial_dialog_message_negative_text, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            dialog.dismiss();
        }
    });
    AlertDialog alertDialog = alertDialogBuilder.create();
    alertDialog.show();
    alertDialog.getWindow().setLayout(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);

PS2: これは私が必要とする画像です... http://www.tiikoni.com/tis/view/?id=f3aed38 赤ですべてのスペースを緩める必要があります。黄色でマークされたスペースに問題はありません。(取っておくことも、取り除くこともできます)

4

2 に答える 2

1

答えを出すのが少し遅いことはわかっていますが、ここからのレシピに従って、ほとんどすべてを解決することができました. 基本的に、次のダイアログテーマがあります。

<style name="DialogTheme" parent="android:Theme.Holo.Light.Dialog">
    <item name="android:windowBackground">@drawable/screen_background_selector_light</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowMinWidthMajor">100%</item>
    <item name="android:windowMinWidthMinor">100%</item>
</style>

screen_background_selector_light への参照に注意してください。つまり、screen_background_selector_light.xml と (その依存関係の background_holo_light.xml) も追加する必要がありました。

アクティビティを指定するだけでよかったのは、この新しいテーマを使用することです。

<activity android:name=".zom.xyz.app.activity.MyActivity_" android:label="@string/activity_title" android:theme="@style/DialogTheme"/>

もちろん、他のアクティビティと同じように作成します。

他の必要性については...簡単なボタンをこのようにしました。活動風景はこちら

<RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin">

    INSERT_DIALOG_CONTENT_HERE

</RelativeLayout>

<LinearLayout
        style="?android:attr/buttonBarStyle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

    <Button
            android:id="@+id/cancelButton"
            style="?android:attr/buttonBarButtonStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="fill_vertical"
            android:layout_weight="1"
            android:text="@string/activity_message_negative_text"/>

    <Button
            android:id="@+id/skipButton"
            style="?android:attr/buttonBarButtonStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="fill_vertical"
            android:layout_weight="1"
            android:text="@string/activity_message_neutral_text"/>

    <Button
            android:id="@+id/correctButton"
            style="?android:attr/buttonBarButtonStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="fill_vertical"
            android:layout_weight="1"
            android:text="@string/activity_message_positive_text"/>
</LinearLayout>

このレイアウトとテーマを使用すると、ダイアログの幅を最大限に広げながら、ダイアログの正確な感触が得られます。

于 2016-11-02T10:09:45.753 に答える
0

1)ダイアログから拡張された独自のダイアログを、次のようなコンストラクタセットスタイルで作成します。

public MyDialog(Context c, Event e) {
        super(c, android.R.style.Theme_Light);
} 

また

2) インスタンスの作成時に、スタイルを設定します。

Dialog dialog = new Dialog(this, R.style.MyDialogTheme);

はこちら

于 2014-05-19T14:44:28.160 に答える