我正在开发一款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。所以宽度太小了。但这就是我得到的。
如何设置自定义提醒对话框的宽度?
答案 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"