0

我使用下面的代码来显示一个对话框:

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

ListView 可能会取消修复行。
但我想获得 MyDialog 的高度。
我该怎么做才能得到它?

4

3 回答 3

1

为了获得ListView可见高度,您需要获取one row列表的高度并乘以元素的数量(目前可见)。

像这样的东西。

        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();
于 2013-05-02T06:41:07.680 回答
0

您可以使用 listView 对象的 getHeight() 而不是获取对话框的高度。

于 2013-05-02T06:31:53.260 回答
0

我检查了高度,这意味着有关视图想要多高的信息。所以也许您可以尝试这样:您可以通过以下方式获得高度:

     int height = MyDialog.getWindow().getDecorView().getHeight();

此外,您可以使用以下方式设置高度:

     MyDialog.getWindow().setLayout(width, height);

注意:所有方法都应该在之后调用MyDialog.show();

于 2013-05-02T06:41:26.120 回答