zoukankan      html  css  js  c++  java
  • [转]View属性 之 paddingStart & paddingEnd

    [CAUSE]

    在写一个自定义View时, 直接复制了Android-Source的XML布局文件, 默认开发SDK版本是4.2.2(Level-API-17), 后因其他原因将SDK版本改为4.1.2 (Level-API-16), 然后XML布局文件就报错了, ----这时才知道paddingStart & paddingEnd是4.2.2中才新加的.

    P.S.可以对比如下两个Android-XML文件(特别注意paddingStart & paddingEnd):

    • android-sdkplatformsandroid-17data esvaluesstyles.xml
    • android-sdkplatformsandroid-16data esvaluesstyles.xml

    [QuickStart]

    1. paddingStart & paddingEnd 是根据左右对齐方式来起作用的
    2. 左对齐时, paddingStart 对应 paddingLeft, paddingEnd 对应 paddingRight
    3. 右对齐时, 正好相反 

    [ANALYSIS]

    1. 打开文件android-sdksourcesandroid-17androidviewView.java
    2. 可以找到mUserPaddingStart (mUserPaddingEnd就是存储 paddingStart (paddingEnd) 属性的变量
    3. 又可以找到其被赋值给mUserPaddingLeft / mUserPaddingRight, 可在resolvePadding() & resetPaddingToInitialValues()  找到
    4. 接下来, 可以看到这两个函数都会调用到 getLayoutDirection() , 来检查是LAYOUT_DIRECTION_RTL 还是 LAYOUT_DIRECTION_LTR 的对齐方式

    [SeeAlso]

    http://developer.android.com/reference/android/R.attr.html
  • 相关阅读:
    Thomas Hobbes: Leviathan
    10 Easy Steps to a Complete Understanding of SQL
    day3心得
    py编码终极版
    day2 作业
    Python 中的比较:is 与 ==
    day2-心得
    day1--心得
    day1作业
    python--open用法
  • 原文地址:https://www.cnblogs.com/xunbu7/p/5079772.html
Copyright © 2011-2022 走看看