有关 LayoutInflater.from(mActivity).inflate(R.layout.board, null);

此处如果传null,lint 会有警告,
一般如果用View.inflate(),警告会解除,但事实是被suppresses the warning,
根本原因是:

如果传null,相当于告诉LayoutInflater 你不知道这个view的父母是谁,而如果运气好的话(一般情况下都是),该view 的默认的参数和xml里写的参数相同,但如果不同,xml里的根布局属性将丢失;
常见的错误写法:


public View getView(int position, View convertView, ViewGroup parent) {
    if (convertView == null) {
        convertView = inflate(R.layout.item_row, null);
    }

    return convertView;
}

此时item_row里的根布局属性将丢失;
应为:

public View getView(int position, View convertView, ViewGroup parent) {
    if (convertView == null) {
        convertView = inflate(R.layout.item_row, parent, false);
    }

    return convertView;
}

但是如果是自定义AlertDialog,在渲染自定义xml时候,也是传null,但是此时,因为AlertDialog并没有其rootView(它不知道何时渲染,只有show方法),并且 无论你的LayoutParams 设成什么,AlertDialog 都会无视掉并且设置成 match_parent,
也就是说 ,此时 你只能传null, 否则就会crash

参考链接:https://possiblemobile.com/2013/05/layout-inflation-as-intended/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值