8

ダイアログを画面サイズに表示したいアプリケーションに取り組んでいます。だから私は以下のコードを使用しました。私はここで解決策を得ましたアラートメッセージがアラートダイアログボックスに表示されませんか?

 AlertDialog.Builder builder = new AlertDialog.Builder(this);
    TextView title = new TextView(this);
    title.setText("DM2");
    title.setBackgroundColor(Color.DKGRAY);
    title.setPadding(10, 10, 10, 10);
    title.setGravity(Gravity.CENTER);
    title.setTextColor(Color.WHITE);
    title.setTextSize(20);


    TextView text = new TextView(this);  
    text.setText("Hello This text");  
    text.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
    text.setTextSize(20);        
    text.setGravity(Gravity.CENTER);

    //Creates a linearlayout layout and sets it with initial params
    LinearLayout ll = new LinearLayout(this);
    ll.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
    ll.setGravity(Gravity.CENTER);
    ll.addView(text); 
    builder.setCustomTitle(title);
    builder.setPositiveButton(
            "Ok", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    dialog.dismiss();
                }
            }); 

    Dialog d = builder.setView(ll).create();
    //Fills up the entire Screen
    WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
    lp.copyFrom(d.getWindow().getAttributes());
    lp.width = WindowManager.LayoutParams.FILL_PARENT;
    lp.height = WindowManager.LayoutParams.FILL_PARENT;
    d.show();
    d.getWindow().setAttributes(lp); 

しかし、ダイアログを中央揃えで表示したい。ウィンドウ上部に表示されるようになりました。lp.garvity = Gravity.center で試してみましたが、うまくいきませんでした。デバイスの向きが変わった場合は、[OK] ボタンをもう一度押してダイアログを閉じる必要があります。これを修正する方法は?

よろしくお願いします

4

6 に答える 6

9

私は少し遅れていますが、遅くなったほうがいいです:-)以下のコードを使用できます:(ここでも見ました)

dialog = new Dialog(activity, android.R.style.Theme_Translucent_NoTitleBar);

dialog.setContentView(R.layout.activity_upload_photo_dialog);

Window window = dialog.getWindow();
window.setLayout(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
window.setGravity(Gravity.CENTER);

//The below code is EXTRA - to dim the parent view by 70%
LayoutParams lp = window.getAttributes();
lp.dimAmount = 0.7f;
lp.flags = LayoutParams.FLAG_DIM_BEHIND;
dialog.getWindow().setAttributes(lp);
//Show the dialog
dialog.show();

私が助けてくれることを願っています...

于 2013-09-02T22:26:41.197 に答える
4

これは私のために働く:

lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
于 2012-05-04T11:12:05.987 に答える
2

android:gravity="center" の代わりに android:layout_gravity="center" を使用してみてください...それはあなたにとって役立つかもしれません..

android:layout_gravity="center" 

また

あなたはこれを試すことができます..

    <activity android:theme="@android:style/Theme.Dialog"
        android:name=".Splash">
    </activity>

アクティビティを AndroidManifest.xml に登録するときに、完全な xml コードを記述して単純なアクティビティを作成し、AndroidManifest.xml に 1 つの属性を追加します。

于 2012-05-04T10:56:50.580 に答える
1

多分これはうまくいきます:

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

WMLP.gravity = Gravity.CENTER_HORIZONTAL|Gravity.CENTER_VERTICAL

dialog.getWindow().setAttributes(WMLP);
于 2012-05-04T11:14:13.040 に答える
0

:-これは「カスタムレイアウト」用です... :)

私は同じことに苦労していました。何時間も苦労した後、この結果になりました

以前、私はこのようなディラオゲを作成していました: -

 final Dialog dialog = new Dialog(PopupforeditActivity.this);

スタイル「No titleBar」を追加した後、作成した方法でレイアウトの取得を開始しました。

このためには、パラメータ「fillParent」でレイアウトを作成し、このようなダイアログを作成する必要があります

    final Dialog dialog = new Dialog(PopupforeditActivity.this,android.R.style.Theme_Translucent_NoTitleBar_Fullscreen);
dialog.setContentView(R.layout.dialog_billing_cart);
        dialog.setCancelable(true);

上記はコーディング部分です

Layoutレイアウト全体を部分的に入れますRelativeLayout

レイアウトプロパティを指定しますandroid:layout_centerInParent="true"

元:-

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@android:color/transparent" >


<!--Your Layout-->

  <ScrollView
        android:id="@+id/scrlView_FormHolder"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"

        android:layout_centerInParent="true"

        android:layout_marginBottom="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp" >
</ScrollView>

</RelativeLayout>

また、「タイトル」を見逃したくない場合は、カスタムレイアウトで TextView ..

それが役立つことを願っています..それが私を助けたように:)

于 2012-05-14T05:05:10.823 に答える