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 参数传递。其他答案表明您应该通过nullconvertView,这是错误的。

查看这篇关于布局膨胀的文章,以及为什么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参数问题

实例化Layout中的布局文件(xml)

Android 中的 LayoutInflater 有啥作用?

layoutInflater的用途以及获取VIEW方法