您的位置:首页 > 运维架构

关于LayoutInflater使用出现unSupportedOperationException异常

2015-03-12 18:27 381 查看
layoutInflater.inflate(resourceId, root);

LayoutInflater主要是用来加载布局的,用法有两种:

LayoutInflater layoutInflater = LayoutInflater.from(context);
或者

LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);


然后用LayoutInflater的示例来加载布局:

layoutInflater.inflate(resourceId, root);


其实inflate方法有三个参数:第一个参数表示要加载的布局Id,第二个表示给该布局外层在嵌套一层父布局,不需要则传入null,第三个参数(以上并没有加入该参数)attachToRoot,怎么理解呢?

1. 如果root为null,attachToRoot将失去作用,设置任何值都没有意义。

2. 如果root不为null,attachToRoot设为true,则会在加载的布局文件的最外层再嵌套一层root布局。

3. 如果root不为null,attachToRoot设为false,则root参数失去作用。

4. 在不设置attachToRoot参数的情况下,如果root不为null,attachToRoot参数默认为true。

当你使用inflate的时候需要注意是否需要添加父布局root,根据以上的说明,设置正确的参数。

我出现该错误的原因是:因为出现了上面的第4点:在不设置attachToRoot参数的情况下,如果root不为null,attachToRoot参数默认为true。但由于传入的root为null,所以出现异常!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐