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" 无效。

  • 相关阅读:
    asp.net web生命周期
    图的数据结构1
    最长公共子串
    内部排序

    棋盘覆盖问题
    队列
    矩阵连乘问题
    图的数据结构2
    旅行售货员问题
  • 原文地址:https://www.cnblogs.com/CharlesGrant/p/5170852.html
Copyright © 2011-2022 走看看