无法在Android

时间:2016-10-15 05:52:31

标签: java android android-layout android-alertdialog

我正在开发一款Android应用。在我的应用程序中,我正在尝试显示设置自定义视图的警报对话框。设置自定义视图是可以的。但是我在设置对话框的宽度方面遇到了问题。我无法设置宽度。它始终默认为。请参阅下面的方案。

这是我显示对话框的方式

AlertDialog.Builder builder = new AlertDialog.Builder(context);
            View view = layoutInflater.inflate(R.layout.meme_post_actions_dialog,null);
            builder.setView(view);
            builder.create().show();

这是xml布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:gravity="center"
    android:orientation="vertical" android:layout_width="100dp"
    android:layout_height="match_parent">
    <TextView
        android:text="This is dialog"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

如您所见,我将宽度设置为100dp。所以宽度太小了。但这就是我得到的。

enter image description here

如何设置自定义提醒对话框的宽度?

2 个答案:

答案 0 :(得分:2)

试试这个:

AlertDialog.Builder builder = new AlertDialog.Builder(context);
            View view = layoutInflater.inflate(R.layout.meme_post_actions_dialog,null);
            builder.setView(view);
int width = (int)(getResources().getDisplayMetrics().widthPixels*0.50); //<-- int width=400;
int height = (int)(getResources().getDisplayMetrics().heightPixels*0.50);//<-- int height =300;
AlertDialog alertDialog = builder.create();
alertDialog.getWindow().setLayout(width, height);

答案 1 :(得分:1)

可能有多种方法可以控制它。让我通过设置警报窗口宽度和高度与您分享其中一种方法。

AlertDialog.Builder builder = new AlertDialog.Builder(this);
View view = layoutInflater.inflate(R.layout.meme_post_actions_dialog,null);
        builder.setView(view);
builder.setView(layout);
alertDialog = builder.create();
alertDialog.show();
alertDialog.getWindow().setLayout(600, 400); //<--Controlling width and height.

最后确保布局的父级应与父级匹配。

android:layout_width="match_parent"
android:layout_height="match_parent"