如何在Android上获取AlertDialog的高度
我使用以下代码显示一个对话框:如何在Android上获取AlertDialog的高度,android,android-alertdialog,Android,Android Alertdialog,我使用以下代码显示一个对话框: private AlertDialog MyDialog; public void adddialog() { AlertDialog.Builder MyBuilder = new AlertDialog.Builder(this); MyBuilder.setTitle("Title") MyBuilder .setView(ListView); MyDialog = MyBuilder.create(); } ListVie
private AlertDialog MyDialog;
public void adddialog() {
AlertDialog.Builder MyBuilder = new AlertDialog.Builder(this);
MyBuilder.setTitle("Title")
MyBuilder .setView(ListView);
MyDialog = MyBuilder.create();
}
ListView可能会取消固定行。但是我想得到MyDialog的高度。
我怎样才能得到它 您可以使用listView对象的getHeight(),而不是获取对话框的高度。为了获取listView的可见高度,您需要获取列表中一行的高度,并乘以元素数(当前可见) 像这样的
Adapter ListAdapter = listview.getAdapter();
View mView = ListAdapter.getView(0, null, listview);
mView.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
int requiredHeight = listview.getChildCount() * mView.getMeasuredHeight();
我检查了高度,它表示视图希望达到的高度。。 也许你可以这样试试: 您可以通过以下方式获得高度:
int height = MyDialog.getWindow().getDecorView().getHeight();
此外,您还可以使用以下选项设置高度:
MyDialog.getWindow().setLayout(width, height);
注意:所有方法都应该在
MyDialog.show()之后调用代码>但它不包含对话框的标题和填充。使用活动作为对话框,则您的高度和宽度与设备屏幕相同…我将此添加到MyDialog.show()之后。但是我使用这个方法,得到的高度=-2。试试这个:MyDialog.getWindow().getDecorView().getHeight();