RecycleView match_parent属性失效问题

RecycleView match_parent属性失效问题

package com.example.mutaoapp.adapter;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.example.mutaoapp.R;
import com.example.mutaoapp.entity.Find_toutiao_item;

import java.util.List;

public class FindMenuToutiaoAdapter extends RecyclerView.Adapter<FindMenuToutiaoViewHolder> {

    Context context;
    List<Find_toutiao_item> itemList;



    public FindMenuToutiaoAdapter(Context context , List<Find_toutiao_item> itemsList){
        this.context = context;
        this.itemList = itemsList;

    }



    @NonNull
    @Override
    public FindMenuToutiaoViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view = LayoutInflater.from(context).inflate(R.layout.find_toutiao_item, null);
        LinearLayout.LayoutParams layoutParamsnew = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
        view.setLayoutParams(layoutParamsnew);
        return new FindMenuToutiaoViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull FindMenuToutiaoViewHolder findMenuToutiaoViewHolder, int i) {

        Find_toutiao_item find_toutiao_item = itemList.get(i);
        findMenuToutiaoViewHolder.imageViewIcon.setImageResource(find_toutiao_item.Icon);
        findMenuToutiaoViewHolder.textViewMsg.setText(find_toutiao_item.touTiaoContext);
        findMenuToutiaoViewHolder.textViewSource.setText(find_toutiao_item.touTiaoMsgSource);
        findMenuToutiaoViewHolder.textViewNumsOfReader.setText(find_toutiao_item.touTiaoNumOfSee);
        findMenuToutiaoViewHolder.getTextViewNumsOfDianzan.setText(find_toutiao_item.touTiaoNumofDianzan);
    }

    @Override
    public int getItemCount() {
        return itemList !=null ? itemList.size() : 0;
    }
}

http://img1.sycdn.imooc.com//climg/5cfcf8be0001408204670518.jpg

布局都设置的是match_parent , recycleview子组件布局采用约束布局,实在是查不到原因。作业已提交,希望老师帮忙解决!

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

嗯,确实是这样的。原因是你的RecyclerView外面又包裹了一层ScrollView。两个滚动的容器嵌套就会出现你描述的这样情况。解决方法就是你把外面的ScrollView去掉,只让热门头条用RecyclerView就行了。祝:学习愉快

  • 爱笑的syt 提问者 #1
    可是如果只用recycleView的话,热门头条页面就会很小(上方菜单栏和底部导航栏太大且不可滚动),滚动也只是在一个很小的范围,如果是实际工程项目中如何解决这类问题呢?
    2019-06-10 10:38:29
  • 好帮手慕雪 回复 提问者 爱笑的syt #2
    这得看UI是如何设计的。没有固定的非得怎么样才行,一切看项目需求。或者也可以按你说的改成固定数值。
    2019-06-10 14:27:03
提问者 爱笑的syt 2019-06-09 20:42:21

更新2:同样将39行改为固定数值1050可以得以解决,但是不明白为什么MATCH_PARENT和MATCH_CONSTRAINT参数不生效

提问者 爱笑的syt 2019-06-09 20:35:02

更新:将第39行改为ConstraintLayout.LayoutParams layoutParams = new ConstraintLayout.LayoutParams(ConstraintLayout.LayoutParams.MATCH_PARENT, ConstraintLayout.LayoutParams.WRAP_CONTENT);同样无效(recycleView子组件最外层是约束布局)

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师