LayoutInflater深度解析,学习方式分享

LayoutInflater.from(parent.context).inflate(R.layout.activity_main,parent,false)
通过CTRL+用鼠标点击from方法我们进入了from源码(windows快捷键,Mac为Command+c)
public static LayoutInflater from(Context context) {
LayoutInflater LayoutInflater =
(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (LayoutInflater == null) {
throw new AssertionError(“LayoutInflater not found.”);
}
return LayoutInflater;
}
从Android Developers我们找到了定义: 从给定的上下文获取LayoutInflater。 如果为空,抛出异常 在这里插入图片描述
在讨论.inflate(R.layout.activity_main,parent,false)
从Android Developer我们看到有四个inflate方法,但其实最多只有三个参数
在这里插入图片描述
在这里插入图片描述
这里我们主要分析三个参数的inflate,这里用了官方的解释
1.resource:第一个参数就是要加载的XML布局资源的ID(例如,R.layout.main)
2.root:可选视图作为生成的层次结构的父对象(如果attachToRoot为true),或者只是一个对象,为返回的层次结构的根提供一组LayoutParams值(如果attachToRoot为false)。 该值可能为空。
3.attachToRoot:膨胀的层次结构是否应该附加到根参数? 如果为false, root仅用于为XML中的根视图创建正确的LayoutParams子类。

其实这个解释并不好理解,下面用通熟易懂的方式解释下

(1)如果root不为null,attachToRoot为true,表示将layout布局添加到root布局中

(2)如果root不为null,attachToRoot为false,表示不将layout布局添加到root布局,若要添加则需要手动addView

如果root不为null,不设置attachToRoot(即调用两个参数的方法),情况和(2)中一样(相当于不设置attachToRoot,则attachToRoot默认为false)

其实顾名思义,attach单词的意思为附上,add上,attachToRoot的意思就是add上root,这里的root就是我们的ViewGroup,所以这个参数的含义就是是否将我们inflate出来的view add到我们所传递的ViewGroup上,就这么理解即可。

下面我分享下我的学习方式,遇到不熟悉的方法,先通过CTRL+用鼠标点击from方法我们进入了from源码看相应方法(不要因为英语不好就抵触,如果英语实在不好(跟我一样)这里推荐一下网易有道词典),在到Android Developers去看官方解释,如果实在难以理解,可以在CSDN,掘金,博客园等去查找资料(有好的网站或学习方法希望在评论区给我推荐一下),一个东西光知道用,记住是不行的,人都会用,若理解后才可以变成你自己的东西,才可以在此基础上变通,举一反三。

最后送一句话给大家:人生不必遗憾。若是美好,叫做精彩;若是糟糕,叫做经历。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

橘子先生z

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值