LayoutInflater 类型中的方法 inflate(int, ViewGroup, boolean) 不适用于参数 (int, int, boolean)
Posted
技术标签:
【中文标题】LayoutInflater 类型中的方法 inflate(int, ViewGroup, boolean) 不适用于参数 (int, int, boolean)【英文标题】:The method inflate(int, ViewGroup, boolean) in the type LayoutInflater is not applicable for the arguments (int, int, boolean) 【发布时间】:2013-12-04 14:48:51 【问题描述】:我正在尝试解决之前设置填充参数的问题:
Thumbnail does not fill_parent as expected
但是,当我尝试实施答案中提供的修复时,我认为我没有正确实施。当我尝试这样做时,我收到有关通货膨胀参数的错误说明: 但是我不确定我应该使用确切的参数来解决这个问题,以便正确填充 ImageView。
JAVA:
@Override
public View getView(int position, View convertView, ViewGroup parent)
if(convertView == null)
convertView = mInflater.inflate(R.layout.activity_main, R.layout.list_item_user_video, false);
UrlImageView thumb = (UrlImageView) convertView.findViewById(R.id.userVideoThumbImageView);
TextView title = (TextView) convertView.findViewById(R.id.userVideoTitleTextView);
final Video video = videos.get(position);
thumb.setImageDrawable(video.getThumbUrl());
title.setText(video.getTitle());
return convertView;
错误:
错误位置:
convertView = mInflater.inflate(R.layout.activity_main, R.layout.list_item_user_video, false);
【问题讨论】:
【参考方案1】:inflate()
的第二个参数必须是 ViewGroup
。您正在传递int
。想必第二个参数应该是parent
。
【讨论】:
convertView = mInflater.inflate(R.layout.activity_main, convertView, false);看起来正确吗? 不,应该是parent
。从有关根参数的文档中:作为生成层次结构的父级的可选视图(如果 attachToRoot 为真),或者只是为返回的层次结构的根提供一组 LayoutParams 值的对象(如果 attachToRoot 是错误。)
对您来说有效的值可能是“this”,这意味着您尝试膨胀的视图属于该视图组。
convertView = mInflater.inflate(R.layout.list_item_user_video, this, false);导致 LayoutInflater 类型中的方法 inflate(int, ViewGroup, boolean) 不适用于参数 (int, VideosAdapter, boolean)
@JeffreyKlardie:你说的完全正确;我是个白痴。我已经确定了我的答案。谢谢!【参考方案2】:
正如 user2365568 指出的那样,您应该将parent
作为root
参数传递。其他答案表明您应该通过null
或convertView
,这是错误的。
查看这篇关于布局膨胀的文章,以及为什么root
参数很重要:http://www.doubleencore.com/2013/05/layout-inflation-as-intended/
【讨论】:
谢谢!我很感激!【参考方案3】:您应该将父视图放在方法签名的第二个参数中 - 即
mInflater.inflate(R.layout.activity_main, parent, false);
其中 parent 是 ViewGroup
【讨论】:
对不起... commonsware 打败了你 - 如果你想要一个简单的答案,我仍然无法在图像上填写_parent(这是导致我来到这里的问题):@987654321 @以上是关于LayoutInflater 类型中的方法 inflate(int, ViewGroup, boolean) 不适用于参数 (int, int, boolean)的主要内容,如果未能解决你的问题,请参考以下文章
LayoutInflater类的inflate方法中的第二个参数怎么用,Android
LayoutInflater.inflate()方法的ViewGroup参数问题
LayoutInflater.inflate()方法的ViewGroup参数问题