2 csh 34 csh_34 于 2013.07.05 09:50 提问

如何获取 AlertDialog 的高度?

我用下面的代码显示一个dialog:

private AlertDialog MyDialog;
public void adddialog() {
    AlertDialog.Builder MyBuilder = new AlertDialog.Builder(this);
    MyBuilder.setTitle("Title")
    MyBuilder .setView(ListView);
    MyDialog = MyBuilder.create();
}

ListView 也不能设定 rows。
但是我想获得 MyDialog 的高度。
如何获取呢?

2个回答

shaojie519
shaojie519   2013.07.05 10:40
已采纳

那得计算每一个ItemView的高度
Adapter listAdapter = listView.getAdapter();
View itemView = listAdapter.getView(position, null, listView); //position表示itemView的index
itemView.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
int currentItmeHeight = itemView.getMeasuredHeight();
总高度就是各个itemView的高度和。

cj6585256
cj6585256   2013.07.05 14:07

看源码看的 不知道这样行不行,没测试

WindowManager.LayoutParams layout= MyDialog.getWindow().getAttributes();
layout.width = 
layout.height 
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!