New UI-gravity和layout_gravity属性解析

New UI-gravity和layout_gravity属性解析

 ——转载请注明出处:coder-pig,欢迎转载,请勿用于商业用途!

小猪Android开发交流群已建立,欢迎大家加入,无论是新手,菜鸟,大神都可以,小猪一个人的

力量毕竟是有限的,写出来的东西肯定会有很多纰漏不足,欢迎大家指出,集思广益,让小猪的博文

更加的详尽,帮到更多的人,O(∩_∩)O谢谢!

小猪Android开发交流群:小猪Android开发交流群群号:421858269

新Android UI实例大全目录:http://blog.csdn.net/coder_pig/article/details/42145907

1)两者用法演示:

相信大家对于这两个属性都不陌生吧,也是这两个其实平时用的很多的:

android:gravity:设置view中内容的对齐方式!

android:layout_gravity:设置view在布局容器中的对齐方式,要在LinearLayout里面才可以用哦!

多说无益,通过一个简单的例子就可以知道了

两个简单的TextView,设置不同的gravity和layout_gravity属性

布局代码如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.jay.example.getscreendemo.MainActivity"
    android:orientation="vertical" >

    <TextView
        android:layout_gravity="right"
        android:background="#FF7878"
        android:gravity="center"
        android:layout_width="300dp"
        android:layout_height="200dp"
        android:text="O(∩_∩)O哈哈~"
        android:textSize="18sp"/>

    <TextView
        android:background="#FF7428"
        android:gravity="left|bottom"
        android:layout_width="300dp"
        android:layout_height="200dp"
        android:text="(*^__^*) 嘻嘻……"
        android:textSize="18sp" />

</LinearLayout><strong>
</strong>

用法都是很简单的,可选的值都是一样的,当然可以同时设置多个属性,只需用|间隔即可,比如左上left|top

2)使用Layout_gravity的一个很重要的问题!!!

这个问题是一个读者偶尔一次发现反馈给我的,万分感谢,同时希望大家在看小猪博客的时候可以提出

一些实际开发中遇到的问题,以及解决方式,好给后来者经验!毕竟小猪不是神,不是什么方方面面都能

考虑到的,谢谢!

问题内容:

在一个LinearLayout的水平方向中布置两个TextView,想让一个左,一个右,怎么搞?

或许你会脱口而出:"gravity设置一个left,一个right就可以啦!"

真的这么简单?你试过吗?写个简单的Layout你就会发现,事与愿违了:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    tools:context="com.jay.example.getscreendemo.MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="200dp"
        android:layout_gravity="left"
        android:background="#FF7878"
        android:gravity="center"
        android:text="O(∩_∩)O哈哈~" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="200dp"
        android:layout_gravity="right"
        android:background="#FF7428"
        android:gravity="center"
        android:text="(*^__^*) 嘻嘻……" />

</LinearLayout>

运行结果图:

看到这里你会说:哎呀,真的不行耶,要不在外层LinearLayout加个gravity=left的属性,然后设置第二个

TextView的layout_gravity为right,恩,好我们试一下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:gravity="left"
    tools:context="com.jay.example.getscreendemo.MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="200dp"
        android:background="#FF7878"
        android:gravity="center"
        android:text="O(∩_∩)O哈哈~" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="200dp"
        android:layout_gravity="right"
        android:background="#FF7428"
        android:gravity="center"
        android:text="(*^__^*) 嘻嘻……" />

</LinearLayout>

结果还是一样:

好吧,没辙了,怎么办好?

当 android:orientation="vertical"
时, 只有水平方向的设置才起作用,垂直方向的设置不起作用。

即:left,right,center_horizontal
是生效的。

当 android:orientation="horizontal"
时, 只有垂直方向的设置才起作用,水平方向的设置不起作用。

即:top,bottom,center_vertical
是生效的

不过貌似这个解决方法有点坑爹,比如如果只能竖直方向设置左右对齐的话,就会出现下面的效果:

显然不是我们要的结果把!

综上,要么按照上述给出的规则来布局,不过对于这种情况还是使用相对布局RelativeLayout把!

网上没给出具体的原因,都是说这样改有人说这个和orientation的优先级有关

,暂且先mark下来吧,后续如果知道原因的话再解释!前面屏幕适配也说过了,布局还是建议使用

RelativeLayout!

时间: 2024-11-05 11:29:47

New UI-gravity和layout_gravity属性解析的相关文章

android 布局中 gravity 和 layout_gravity 属性

gravity 这个英文单词是重心的意思,在这里就表示停靠位置的意思. android:gravity 和 android:layout_gravity 的区别: android:gravity 是设置该view里面的内容相对于该view的位置,例如设置button里面的text相对于view的靠左,居中等位置.(也可以在Layout布局属性中添加,设置Layout中组件的位置). android:layout_gravity 是用来设置该view相对与父view的位置,例如设置button在l

Android开发UI之android:gravity / android:layout_Gravity,android:padding / android:layout_margin属性区分

android:gravity / android:layout_Gravity区别: 1 android:gravity 是设置该view里面的内容相对于该view的位置,例如设置button里面的text相对于view的靠左,居中等位置. 2 3 android:layout_gravity 是用来设置该view相对与父view 的位置,例如设置button在layout里面的相对位置:屏幕居中,水平居中等. 在实践中,发现有时会同时使用android:gravity和 android:la

【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性

在进行UI布局的时候,可能常常会用到 android:gravity  和 android:layout_Gravity 这两个属性. 关于这两个属性的差别,网上已经有许多人进行了说明,这边再简单说一下. (资料来自网络) LinearLayout有两个很类似的属性: android:gravity与android:layout_gravity. 他们的差别在于: android:gravity 属性是对该view中内容的限定.比方一个button 上面的text. 你能够设置该text 相对于

在程序中设置android:gravity 和 android:layout_Gravity属性 .

转载自:http://blog.csdn.net/feng88724/article/details/6333809  作者:feng88724 在进行UI布局的时候,可能经常会用到 android:gravity  和 android:layout_Gravity 这两个属性. 关于这两个属性的区别,网上已经有很多人进行了说明,这边再简单说一下. (资料来自网络) LinearLayout有两个非常相似的属性: android:gravity与android:layout_gravity. 他

layout_gravity属性和gravity属性区别(转载)

android的 layout_gravity 属性和 gravity属性 有啥区别? LinearLayout有两个非常相似的属性: android:gravity与android:layout_gravity. 他们的区别在于: android:gravity 属性是对该view中内容的限定.比如一个button 上面的text. 你可以设置该text 相对于view的靠左,靠右等位置. android:layout_gravity是用来设置该view相对与父view 的位置.比如一个but

Android layout属性之gravity和layout_gravity

1. gravity用来描述当前view的内容在view中的位置. gravity是控制其内容或者包含的views在该view(或view group)中的位置 2. layout_gravity是表示该view在其父容器view group中的位置. 该属性只在父容器是LinearLayout和FrameLayout时有效 gravity的中文意思就是”重心“,就是表示view横向和纵向的停靠位置 android:gravity:是对view控件本身来说的,是用来设置view本身的内容应该显示

android:gravity 和 android:layout_Gravity属性

LinearLayout有两个非常相似的属性: android:gravity 与android:layout_gravity. 他们的区别在于: android:gravity 属性是对该view中内容的限定.比如一个button 上面的text. 你可以设置该text 相对于view的靠左,靠右等位置. android:layout_gravity 是用来设置该view相对与父view 的位置.比如一个button 在linearlayout里,你想把该button放在linearlayou

转载(android:gravity , andorid:layout_gravity)原文:http://blog.csdn.net/feng88724/article/details/6333809

[Android布局]在程序中设置android:gravity 和 android:layout_Gravity属性 分类: [Android基础]2011-04-19 16:06 181684人阅读 评论(76) 收藏 举报 androidlayoutbuttonjava网络ui 在进行UI布局的时候,可能经常会用到 android:gravity  和 android:layout_Gravity 这两个属性. 关于这两个属性的区别,网上已经有很多人进行了说明,这边再简单说一下. (资料来

Android UI之原生——(1)、Android UI入门及常见属性与现象

Android UI之原生--(1).Android UI入门及常见属性与现象 导读 :Android UI入门,对于很多人来讲都是比较简单的,教程也多如牛毛,但是这篇绝对和其他的不一样.从接触android开发就注定UI开发是一个一直需要研究的课题,简单的原生UI使用可能你已经掌握,也可能发现某些组件有着一些不爽,但是只要你搞懂原因,就可以了.实在觉得用着不爽,那么就让自己的UI开发能力变强,然后自己写个好点的.android UI开发需要先学会使用原生UI,然后在学会使用开源UI,最后才是自