alertdialog 设置最大高度

设置最大高度,有很多方法,我个人比较喜欢的是下面这种方式 ,这里的view即添加到

  view.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
            @Override
            public void onLayoutChange (View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
                int height = view.getHeight();
                int maxHeight = DensityUtils.dpToPx(mHomeActivity, 200);
                if(height> maxHeight){
            //这里也可采用现获取layoutParams view.setLayoutParams(
new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT,maxHeight)); //这里一定是frameLayout,不然会转换异常,由此可见alertdialog底层是frameLayout } } });

 

2.在dialog中含有recyclerView或者listview,用的relativeLayout,结果listview下面会被截取掉,这里应该这么处理

 view.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
            @Override
            public void onLayoutChange (View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
                int height = mDeviceList.getHeight();
                int maxHeight = DensityUtils.dpToPx(mHomeActivity, 200);

                if(height> maxHeight){
                    //必须首先获取控件的layoutParams,然后再更改,new一个不行
                    ViewGroup.LayoutParams layoutParams = mDeviceList.getLayoutParams();
                    layoutParams.height = maxHeight;
                    mDeviceList.setLayoutParams(layoutParams);
                }



            }
        });

这种方法会导致recyclerview的点击事件,不能及时响应。原因暂时不明

转载于:https://www.cnblogs.com/hechangshou/p/8192772.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值