AndroidUI中gravity属性的运用
2015-11-12 16:42
477 查看
android:layout_gravity与android:gravity:(排列方式)
第一个是,设置的控件在父控件中的位置,是相对父控件而言的。如,Button中设置android:layout_gravity="left",表示:Button控件靠近它父控件的左边界。
第二个是,设置控件内部的元素位置,即相对自身而言。如,Button中设置android:gravity="left",并且android:text="按钮控件",表示:text的值在Button的左边界处。
这两个属性有点类似html中padding和margin之间的区别。
以下摘自 http://blog.csdn.net/shakespeare001/article/details/7843460
特殊情况
当我们采用LinearLayout布局时,有以下特殊情况需要我们注意:
(1)当 android:orientation="vertical" (垂直方向,默认)时, android:layout_gravity只有水平方向的设置才起作用,垂直方向的设置不起作用。即:left,right,center_horizontal 是生效的。
(2)当 android:orientation="horizontal"(水平方向) 时, android:layout_gravity只有垂直方向的设置才起作用,水平方向的设置不起作用。即:top,bottom,center_vertical 是生效的。
下面以一个例子说明:(本例来源于:http://blog.csdn.net/dekunchenivan/article/details/6718678)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="100dip"
android:layout_height="100dip"
android:layout_gravity="bottom|center_horizontal"
android:gravity="center|bottom"
android:background="#00FF00"
android:text="@string/textview"
/>
<Button
android:layout_width="100dip"
android:layout_height="100dip"
android:layout_gravity="bottom|left"
android:gravity="left|top"
android:background="#FF0000"
android:text="@string/button"
/>
</LinearLayout>
在TextView中,我们设置了android:layout_gravity="bottom|center_horizontal"
,但该TextView并没有显示在屏幕的下方正中央,表明只有center_horizontal属性起了作用,这正是因为我们使用了LinearLayout布局,并且其android:orientation="vertical",只有水平方向的设置才会起作用,其他方向则会失效。同样,Button也一样。
第一个是,设置的控件在父控件中的位置,是相对父控件而言的。如,Button中设置android:layout_gravity="left",表示:Button控件靠近它父控件的左边界。
第二个是,设置控件内部的元素位置,即相对自身而言。如,Button中设置android:gravity="left",并且android:text="按钮控件",表示:text的值在Button的左边界处。
这两个属性有点类似html中padding和margin之间的区别。
以下摘自 http://blog.csdn.net/shakespeare001/article/details/7843460
特殊情况
当我们采用LinearLayout布局时,有以下特殊情况需要我们注意:
(1)当 android:orientation="vertical" (垂直方向,默认)时, android:layout_gravity只有水平方向的设置才起作用,垂直方向的设置不起作用。即:left,right,center_horizontal 是生效的。
(2)当 android:orientation="horizontal"(水平方向) 时, android:layout_gravity只有垂直方向的设置才起作用,水平方向的设置不起作用。即:top,bottom,center_vertical 是生效的。
下面以一个例子说明:(本例来源于:http://blog.csdn.net/dekunchenivan/article/details/6718678)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="100dip"
android:layout_height="100dip"
android:layout_gravity="bottom|center_horizontal"
android:gravity="center|bottom"
android:background="#00FF00"
android:text="@string/textview"
/>
<Button
android:layout_width="100dip"
android:layout_height="100dip"
android:layout_gravity="bottom|left"
android:gravity="left|top"
android:background="#FF0000"
android:text="@string/button"
/>
</LinearLayout>
在TextView中,我们设置了android:layout_gravity="bottom|center_horizontal"
,但该TextView并没有显示在屏幕的下方正中央,表明只有center_horizontal属性起了作用,这正是因为我们使用了LinearLayout布局,并且其android:orientation="vertical",只有水平方向的设置才会起作用,其他方向则会失效。同样,Button也一样。
相关文章推荐
- 自定义UITableViewCell 上的多个按钮点击事件处理
- Github学习笔记2- Repository & Issue
- java,arduino,C#之间的一些编码转换
- iOS之UI高级---如何理解图文混排
- String、StringBuffer与StringBuilder之间区别
- js-QuickStart-base.js
- ios UIScrollView不能响应TouchesBegin:的事件的解决办法
- Codeforces Testing Round #12C - Subsequences (dp+树状数组优化)
- break语句和continue语句
- 使用uiautomator时遇到问题的处理方法
- easyui ComboBox 中文检索问题
- Range Sum Query 2D - Immutable
- iOSUI调试工具------Reveal
- UIAlertController
- CYC-UITableViewCell的动态高度
- UIScrollView 的subViews的问题
- 让UITableView的section header view不悬停的方法
- ant <copy文件忽略目录结构flatten="true"
- Django中request和response中的属性方法详述
- UIView 控件