zoukankan      html  css  js  c++  java
  • RecyclerView android:layout_width="match_parent" 无效

    使用RecyclerView 时,在xml文件中设置宽度match_parent无效。

    1 View view = mInflater.from(mContext).inflate(R.layout.item_recycler_view, parent, false);

    对于:inflate

    1 public View inflate(int resource, ViewGroup root, boolean attachToRoot) {  
    2     if (DEBUG) System.out.println("INFLATING from resource: " + resource);  
    3     XmlResourceParser parser = getContext().getResources().getLayout(resource);  
    4     try {  
    5         return inflate(parser, root, attachToRoot);  
    6     } finally {  
    7         parser.close();  
    8     }  
    9 } 

    即调用了:

    public View inflate(XmlPullParser parser, ViewGroup root, boolean attachToRoot) 

    其方法对于理解后两个参数作用的代码:

     1 ViewGroup.LayoutParams params = null;  
     2   
     3 if (root != null) {  
     4     if (DEBUG) {  
     5         System.out.println("Creating params from root: " +  
     6                 root);  
     7     }  
     8     // Create layout params that match root, if supplied  
     9     params = root.generateLayoutParams(attrs);  
    10     if (!attachToRoot) {  
    11         // Set the layout params for temp if we are not  
    12         // attaching. (If we are, we use addView, below)  
    13         temp.setLayoutParams(params);  
    14     }  
    15 }  

    调用其方法:

    1、传入了ViewGroup root参数,则会从root中得到由layout_width和layout_height组成的LayoutParams

    2、如果attachToRoot设置为false的话,就会对我们加载的视图View设置该LayoutParams。

    所以RecyclerView 如果采用平常方式去inflate,宽度不会显示全,设置layout_width="match_parent" 无效。

  • 相关阅读:
    牛客前缀和题、枚举---[HNOI2003]激光炸弹
    牛客贪心题---拼数
    牛客枚举题---明明的随机数
    牛客模拟、差分题---校门外的树
    牛客贪心题---纪念品分组
    03_7_继承和权限控制
    03_6_package和import语句
    03_5_static关键字
    01_8_sql主键生成方式
    01_7_模糊查询实体对象
  • 原文地址:https://www.cnblogs.com/CharlesGrant/p/5170852.html
Copyright © 2011-2022 走看看