[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-sdk\platforms\android-17\data\res\values\styles.xml
  • android-sdk\platforms\android-16\data\res\values\styles.xml

[QuickStart]

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

[ANALYSIS]

  1. 打开文件android-sdk\sources\android-17\android\view\View.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

[转]View属性 之 paddingStart & paddingEnd的更多相关文章

  1. Android读取自定义View属性

    Android读取自定义View属性 attrs.xml : <?xml version="1.0" encoding="utf-8"?> < ...

  2. Android 100多个Styles快速开发布局XML,一行搞定View属性,一键统一配置UI...

    Android开发中大量使用XML代码作为界面的布局,使用styles能大幅精简XML代码. 比如下面这个界面从AlertDialog至PlacePickerWindow有19个样式相同的跳转Item ...

  3. android 自定义View属性

    在android开发过程中,用到系统的View时候可以通过XML来定义一些View的属性.比如ImageView:   android:src  和android:scaleType为ImageVie ...

  4. View 属性

    关于 View 设置属性的方式: JavaxmlstyledefStyleAttrdefStyleResTheme 关于 defStyleRes 的使用,和在 xml 中声明 style=" ...

  5. Android 通过Java代码生成创建界面。动态生成View,动态设置View属性。addRules详解

    废话不多说,本文将会层层深入给大家讲解如何动态的生成一个完整的界面. 本文内容: Java代码中动态生成View Java代码中动态设置View的位置,以及其他的属性 LayoutParams详解 一 ...

  6. android自定义view属性

    第一种 /MainActivity/res/values/attrs.xml <?xml version="1.0" encoding="utf-8"?& ...

  7. 【android自己定义控件】自己定义View属性

    1.自己定义View的属性 2.在View的构造方法中获得我们自己定义的属性 3.重写onMesure 4.重写onDraw 3这个步骤不是必须,当然了大部分情况下还是须要重写的. 1.自己定义Vie ...

  8. andorid 自定义view属性declare-styleable

    1. reference:参考某一资源ID. (1)属性定义: <declare-styleable name = "名称"> <attr name = &quo ...

  9. android开发_view和view属性

    一.view视图的宽度和高度属性,属性值:固定和浮动两种状态 1属性为固定值 <View android:layout_width="30dp" android:layout ...

随机推荐

  1. ElasticSearch(5)-Mapping

    一.Mapping概述 映射 为了能够把日期字段处理成日期,把数字字段处理成数字,把字符串字段处理成全文本(Full-text)或精确的字符串值,Elasticsearch需要知道每个字段里面都包含了 ...

  2. HDU 2102 A计划(DFS)

    题目链接 Problem Description 可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸的她再一次面临生命的考验.魔王已经发出消息说将在T时刻吃掉公主,因为他听信谣言说吃公主 ...

  3. LeetCode OJ 31. Next Permutation

    Implement next permutation, which rearranges numbers into the lexicographically next greater permuta ...

  4. Vultr\DigitalOcean\Linode速度最快的vps机房推荐

    对大陆用户来说,香港.新加坡.韩国.台湾.日本,地理位置近,机房速度快.香港地区带宽成本太高,小水管跑不起来,没有性价比.韩国机房带宽充足,但成本也高.新加坡机房量少,像oneasiahost经常无法 ...

  5. csv格式导出文件

    先上传连个图片看看效果,这是界面效果dwz框架(springmvc开发) 点击导出csv效果图 js部分的代码(带条件查询的csv导出): function exportReportCsv(){ ex ...

  6. mvc的IIS 配置问题 runAllManagedModulesForAllRequests 与 HtmlFileHandler

    runAllManagedModulesForAllRequests 一般设置为false,当为true时所有的资源将进入mvc处理,无疑会给服务器加大压力. 解决办法是时使用HtmlFileHand ...

  7. 12c 补丁架构 以及opatch 功能

    cd $ORACLE_HOME/ccr/bin ./emocmrsp oracle@qc550705:/oracle/app/oracle/product/12.1.0.2/db_1/ccr/bin& ...

  8. Android:OpenFire 相关API (持续更新)

    基于XMPP协议的聊天服务器.最近会一直更新相关的API. 需要的软件:OpenFire(服务器),Spark(客户端--测试用),Asmack(Jar包) 1.连接服务器的代码 private vo ...

  9. Android.mk编译APK范例

    以下仅是使用Android.mk编译APK程序的一些范例. 如果你想了解Android.mk的更多内容请参考<Android.mk简介> 一.编译一个简单的APK    LOCAL_PAT ...

  10. Flask -- 路由

    route()装饰器把一个函数绑定到对应的URL(可以是多个)上 @app.route('/') def index(): return 'Index Page' @app.route('/hello ...