<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      公子姓王

      導航

      Android LayoutInflater

      請先閱讀:

      Android LayoutInflater源碼解析

      Android 源碼分析 - LayoutInflater創建View的流程分析

      除此之外,需要補充的內容:

      inflate 方法返回值和 LayoutParams 參數生成

          public View inflate(XmlPullParser parser, @Nullable ViewGroup root, boolean attachToRoot) {
              final Context inflaterContext = mContext;
              final AttributeSet attrs = Xml.asAttributeSet(parser);
              Context lastContext = (Context) mConstructorArgs[0];
              mConstructorArgs[0] = inflaterContext;
              // 返回值,默認為 root
              View result = root;
              // ...
              // xml 生成的 view
              final View temp = createViewFromTag(root, name, inflaterContext, attrs);
              ViewGroup.LayoutParams params = null;
              if (root != null) {
                  // 生成 View 的 LayoutParams,前提是傳入的root不為null
                  params = root.generateLayoutParams(attrs);
                  // 如果attachToRoot為 false,設置 LayoutParams
                  // 如果attachToRoot為  true,這里沒有必要設置,因為后面會 addView
                  if (!attachToRoot) {
                      temp.setLayoutParams(params);
                  }
              }
              rInflateChildren(parser, temp, attrs, true);
              // 如果 attachToRoot,直接將 view 添加到 root
              if (root != null && attachToRoot) {
                  root.addView(temp, params);
              }else {
                  // 這里做了改寫,源代碼為 if (root == null || !attachToRoot),其實是一個意思
                  // 返回值是生成的 view
                  result = temp;
              }
              return result;
          }
      

      結論:

      LayoutParams 參數生成:

      root 參數不為 null,將被用來生成 view 的 LayoutParams 參數(調用 root.generateLayoutParams方法,各個 ViewGroup的之類有不同的自己的 LayoutParams 類型和構造方式);

      如果 root 參數為 null,生成的 view 沒有 LayoutParams 參數,需要返回view后自己設置;

      返回值:

      1. 如果root參數不為 null,attachToRoot 為 true 時,返回 root;

        attachToRoot 為 false 時,返回生成的 view,這時該 view 并未添加到 root 中,需要手動添加;

      2. 如果 root 參數為 null,attachToRoot 為 true 和 false 情況下,請自行分析,沒有見到有人這么用過(這么使用沒有意義),應該也不是api設計者的初衷;

      LayoutInflater 的實現類 及 xml 文件中未指定全類名的 View 如果找到構造方法

      其實,不過通過什么方式,得到的構造方法均為PhoneLayoutInflater對象,該類部分代碼如下:

      package com.android.internal.policy;
      public class PhoneLayoutInflater extends LayoutInflater {
          // 沒有全類名(沒有 "." 的類名),將嘗試添加這些前綴,其實還有另一個前綴
        	// "android.view."
          private static final String[] sClassPrefixList = {
              "android.widget.",
              "android.webkit.",
              "android.app."
          };
          
          @Override protected View onCreateView(String name, AttributeSet attrs) throws ClassNotFoundException {
              for (String prefix : sClassPrefixList) {
                  try {
                      View view = createView(name, prefix, attrs);
                      if (view != null) {
                          return view;
                      }
                  } catch (ClassNotFoundException e) {
                      // In this case we want to let the base class take a crack
                      // at it.
                  }
              }
              // 這里調用了 父類的 onCreateView方法,其中只有一行代碼(return createView(name, "android.view.", attrs);)
              return super.onCreateView(name, attrs);
          }
          
      }
      
      

      posted on 2020-02-15 13:42  公子姓王  閱讀(241)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 婷婷综合缴情亚洲| 国产激情一区二区三区不卡| 熟女精品视频一区二区三区| 国产精品美女AV免费观看| 131mm少妇做爰视频| 日本xxxx色视频在线播放| 日韩人妻一区中文字幕| 高中女无套中出17p| 深夜av在线免费观看| 欧美午夜精品久久久久久浪潮| 中文字幕有码高清日韩| 日本另类αv欧美另类aⅴ| 久久人人爽人人爽人人av| 农村老熟女一区二区三区| 精品国产一区二区三区久久女人| 国产一级av在线播放| 亚洲熟妇自偷自拍另亚洲| 日本道高清一区二区三区| 欧美日本中文| 中国CHINA体内裑精亚洲日本| 亚洲伊人精品久视频国产| 中文字幕理伦午夜福利片| 成人乱人伦精品小说| 蜜桃av无码免费看永久| 爱色精品视频一区二区| 国产成人乱色伦区| 亳州市| 好男人社区在线www| 国产av一区二区久久蜜臀| 国产极品美女网站在线观看| 2019国产精品青青草原| 97久久久亚洲综合久久| 亚洲A综合一区二区三区| 韩日午夜在线资源一区二区| 免费国产精品视频在线| 亚洲人成电影在线天堂色| 国产露脸无套对白在线播放| 激情五月天一区二区三区| 少妇上班人妻精品偷人| 卫辉市| 久久精品国产亚洲av麻豆小说|