博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android margin--负的margin的使用
阅读量:6828 次
发布时间:2019-06-26

本文共 3016 字,大约阅读时间需要 10 分钟。

通常情况下,如果我们想要两个控件实现重叠的效果,一般都是使用FrameLayout 或者RelativeLayout布局。其实,如果设置两个控件的margin值为负数,也能实显控件重叠的效果。

先展示各种效果图:

示例代码1–对应上图中的1:

<LinearLayout

android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp">

<TextView

android:layout_width="180dp"
android:layout_height="80dp"
android:layout_gravity="center"
android:background="#00ff00"
android:padding="-20dp"
android:text="这是没加margin值的效果"/>
<TextView
android:layout_width="180dp"
android:layout_height="80dp"
android:layout_gravity="center"
android:background="#678df7"
android:padding="10dp"
android:text="这是没加margin值的效果"/>
</LinearLayout>
示例代码2 –对应上图中的2

<LinearLayout

android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp">

<TextView

android:layout_width="180dp"
android:layout_height="80dp"
android:layout_gravity="center"
android:background="#00ff00"
android:padding="-20dp"
android:text="这是正的margin值的效果"/>
<TextView
android:layout_width="180dp"
android:layout_height="80dp"
android:layout_gravity="center"
android:layout_marginLeft="30dp"
android:background="#678df7"
android:padding="10dp"
android:text="这是正的margin值的效果"/>
</LinearLayout>
示例代码3 –对应上图中3 的效果

<LinearLayout

android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp">

<TextView

android:layout_width="180dp"
android:layout_height="80dp"
android:layout_gravity="center"
android:background="#00ff00"
android:padding="-20dp"
android:text="这是加了负的margin值的效果"/>

<!--通过这里设置的负的margin值,实现了左侧tv覆盖住右侧tv一部分的效果-->

<TextView
android:layout_width="180dp"
android:layout_height="80dp"
android:layout_gravity="center"
android:layout_marginLeft="-30dp"
android:background="#678df7"
android:padding="10dp"
android:text="这是加了负的margin值的效果"/>
</LinearLayout>
示例代码4 –对应上图中的效果4

<!--消息提示的实现方式1 ,这种应该是实现未读消息提醒布局最简单的写法-->

<RelativeLayout
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_marginTop="20dp"
android:background="@drawable/square_about_me">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="@drawable/red"
android:gravity="center"
android:text="99+"/>
</RelativeLayout>
示例代码5 –对应上图中的5

<!--消息提示的实现方式2,通过使用这种负的margin值的写法,就可以灵活的调整右上角小红点的位置-->

<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="80dp"
android:layout_marginTop="20dp">
<ImageView
android:id="@+id/iv1"
android:layout_width="80dp"
android:layout_height="80dp"
android:src="@drawable/square_about_me"/>

<!--通过设置负的margin值,实现小红点覆盖到小铃铛上的效果,并且可以通过调整margin值来调整小铃铛的位置-->

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="-30dp"
android:layout_toRightOf="@id/iv1"
android:background="@drawable/red"
android:gravity="center"
android:text="99+"/>
</RelativeLayout>
---------------------

原文:https://blog.csdn.net/north1989/article/details/52922564 

转载于:https://www.cnblogs.com/porter/p/10735921.html

你可能感兴趣的文章
JS父页面获取子页面返回值
查看>>
鼠标点击主窗体时,模态子窗口是WindowStyle.None时如何闪烁
查看>>
LABJS源码浅析
查看>>
myShellcode
查看>>
Qore Oracle Module 2.2 发布
查看>>
MoonScript 0.2.2 发布,基于 Lua 的脚本语言
查看>>
assertThat使用方法
查看>>
2013年11月11日工商银行笔试总结
查看>>
Qt之问题求助——当VS遇到“向Pro中添加代码”怎么办?
查看>>
使用reserve函数避免vector和string的内存重新分配
查看>>
ADO.NET(内含存储过程讲解)
查看>>
利用TreeView实现C#工具箱效果
查看>>
PyTalk : a Jabber Client un Python using xmpppy and PyQt4
查看>>
C++类构造函数初始化列表(转)
查看>>
13最佳WordPress的维护插件
查看>>
Missing Screenshot 的解决方案
查看>>
jQuery:1.5.4.3,表格变色(单击行,把当行的单选按钮(radio)设为选中状态,并应用当前样式)...
查看>>
oracle11gR2安装示例数据库
查看>>
解决ssh的"Write failed: Broken pipe"问题
查看>>
Java 网络编程(五) 使用TCP/IP的套接字(Socket)进行通信
查看>>