前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >android:layout_marginEnd隐藏的坑

android:layout_marginEnd隐藏的坑

作者头像
103style
发布2022-12-19 13:09:08
3130
发布2022-12-19 13:09:08
举报
文章被收录于专栏:Android开发经验分享

转载请以链接形式标明出处: http://blog.csdn.net/lxk_1993/article/details/78019537 本文出自:lxk_1993的博客

android:layout_marginEnd隐藏的坑,巨坑

相信稍微有强迫症的开发小伙伴都会看到xml中的类似的这种warning提示

代码语言:javascript
复制
“Consider addingandroid:layout_marginEnd="@dimen/px_30_w750" to better support right-to-left layouts less... ”

在你写了左边距和右边距不相等的时候,就会提示你

然而这种平时是不会有什么问题的! 当你需要 动态改变 控件位置的时候, 比如这样,

代码语言:javascript
复制
 if (test != null) {
    RelativeLayout.LayoutParams testLP = (RelativeLayout.LayoutParams) test.getLayoutParams();
    testLP .setMargins(0, 0,
            DensityUtil.getSize(landsreen ? R.dimen.px_130_w750 : R.dimen.px_30_w750),
            DensityUtil.getSize(landsreen ? R.dimen.px_140_w750 : R.dimen.px_316_w750));
    test.setLayoutParams(testLP );
}

然而setMargins的源码改变的是rightMargin setMarginEnd的源码改变的才是endMargin

代码语言:javascript
复制
 public void setMargins(int left, int top, int right, int bottom) {
    leftMargin = left;
    topMargin = top;
    rightMargin = right;
    bottomMargin = bottom;
    mMarginFlags &= ~LEFT_MARGIN_UNDEFINED_MASK;
    mMarginFlags &= ~RIGHT_MARGIN_UNDEFINED_MASK;
    if (isMarginRelative()) {
        mMarginFlags |= NEED_RESOLUTION_MASK;
    } else {
        mMarginFlags &= ~NEED_RESOLUTION_MASK;
    }
}


 public void setMarginEnd(int end) {
    endMargin = end;
    mMarginFlags |= NEED_RESOLUTION_MASK;
}

然后在API LEVEL 17的时候 如果你同时写了 android:layout_marginEnd 和 android:layout_marginRight , 他会去读 android:layout_marginEnd….

然后 你设置的setMargins 就起不了作用了…

实际效果是这样的

具体 android:layout_marginEnd 和 android:layout_marginRight 在布局的时候怎么添加的源码 我就先不研究了,后面有时间再补上 需要了解的可以自行看看

转载请以链接形式标明出处:http://blog.csdn.net/lxk_1993/article/details/78019537 本文出自:103style

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-09-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档