Android进阶之View.inflate和LayoutInflater.inflate方法区别

1 LayoutInflater用于加载布局

LayoutInflater用于加载布局的。加载布局的任务通常都是在Activity中调用setContentView()方法来完成的。其实setContentView()方法的内部也是使用LayoutInflater来加载布局的,只不过这部分源码是内部的。先看下LayoutInflater的基本用法,首先需要获取到LayoutInflater的实例,有两种方法可以获取到:

// 第一种写法如下:
LayoutInflater layoutInflater = LayoutInflater.from(context);
// 还有另外一种写法也可以完成同样的效果:
LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// 得到了LayoutInflater的实例之后就可以调用它的inflate()方法来加载布局了,如下所示:
layoutInflater.inflate(resourceId, root);

2 View.inflate和LayoutInflater.inflate效果的区别

(1)平时Recyclerview加载item中,adapter的getView方法中,我们经常用到LayoutInflater.inflate这样的方法来加载布局xml,平时一直就是这么用的,也没什么疑问。

LayoutInflater.from(mContext).inflate(R.layout.item_consume_recharge_record, parent, false);

(2)一次在加载布局时,使用了如下的方法View.inflate加载布局:

@Override
public ConsumeRechargeRecordViewHolder onCreateViewHolder_(ViewGroup parent, int viewType) {
	View itemView = View.inflate(mContext, R.layout.item_consume_recharge_record, null);
	return new ConsumeRechargeRecordViewHolder(itemView);
}

得到的效果如下,没有将item的布局文件最外层的所有layout属性设置:
这里写图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值