【问题标题】:The method inflate(int, ViewGroup, boolean) in the type LayoutInflater is not applicable for the arguments (int, int, boolean)LayoutInflater 类型中的方法 inflate(int, ViewGroup, boolean) 不适用于参数 (int, int, boolean)
【发布时间】:2013-12-04 14:48:51
【问题描述】:

我正在尝试解决之前设置填充参数的问题:

Thumbnail does not fill_parent as expected

但是,当我尝试实施答案中提供的修复时,我认为我没有正确实施。当我尝试这样做时,我收到有关通货膨胀参数的错误说明:LayoutInflater 类型中的方法 inflate(int, ViewGroup, boolean) 不适用于参数 (int, int, boolean) 但是我不确定我应该使用确切的参数来解决这个问题,以便正确填充 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;
    }

错误:

LayoutInflater 类型中的方法 inflate(int, ViewGroup, boolean) 不适用于参数 (int, int, boolean)

错误位置:

convertView = mInflater.inflate(R.layout.activity_main, R.layout.list_item_user_video, false);

【问题讨论】:

    标签: java android view imageview int


    【解决方案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 @
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-11
    • 1970-01-01
    • 1970-01-01
    • 2018-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多