码迷,mamicode.com
首页 > 移动开发 > 详细

【整理】Android中的gravity和layout_gravity区别

时间:2015-05-03 23:39:38      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:


    

【背景】

在Android中,想要设置个按钮的水平对齐,都累死了:

【已解决】ADT中已设置TableLayout布局的情况下如何设置按钮居中对齐    所以现在有必要搞清楚,到底gravity和layout_gravity到底有啥区别。


1.参考:

Android – gravity and layout_gravity

Android中gravity与layout_gravity的区别

中的解释,可以总结为:

    • android:gravity : 表示当前View,即控件,内部的东西的,对齐方式
      • TableRow内部的Button
        • 右对齐:
          • 代码:
<TableRow
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:gravity="right">

    <Button
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"
        android:gravity="center"
        android:layout_gravity="center"
        android:onClick="preformDownload"
        android:text="@string/btn_download" />
</TableRow>
          • 效果:
          • 技术分享
        • 居中对齐:
          • 代码:
 	<TableRow
	    android:layout_width="fill_parent" 
	    android:layout_height="fill_parent"
	    android:gravity="center">

 	    <Button
 	        android:layout_width="fill_parent" 
 	        android:layout_height="fill_parent"
 	        android:gravity="center"
 	        android:layout_gravity="center"
 	        android:onClick="preformDownload"
 	        android:text="@string/btn_download" />
 	</TableRow>
        • 效果:
          • 技术分享
      • Button内部的文字(Text):
        • 垂直方向:顶端Top
          • 代码:
 	    <Button
 	        android:layout_width="fill_parent"
 	        android:layout_height="fill_parent"
 	        android:layout_gravity="bottom"
 	        android:gravity="top"
 	        android:onClick="preformDownload"
 	        android:text="@string/btn_download" />
          • 效果:
            • 技术分享
        • 垂直方向:居中对齐:
          • 代码:
 	    <Button
 	        android:layout_width="fill_parent"
 	        android:layout_height="fill_parent"
 	        android:layout_gravity="bottom"
 	        android:gravity="center_vertical"
 	        android:onClick="preformDownload"
 	        android:text="@string/btn_download" />
          • 效果:
            • 技术分享
    • android:layout_gravity: 表示,当前View,即控件,本身,(在父一级的控件所分配的显示范围内)的对齐方式
      • EditText(在父一级的LinearLayout内)
        • EditText居中对齐:
          • 代码:
 	<LinearLayout 
	    xmlns:android="http://schemas.android.com/apk/res/android" 
	    android:orientation="vertical" 
	    android:layout_width="fill_parent" 
	    android:layout_height="fill_parent"> 

	    <EditText
	        android:layout_width="wrap_content"
	        android:layout_height="wrap_content"
	        android:layout_gravity="center"
	        android:gravity="center"
	        android:text="one" />

	</LinearLayout>
          • 效果:
            • 技术分享
        • EditText右对齐:
          • 代码:
 	<LinearLayout 
	    xmlns:android="http://schemas.android.com/apk/res/android" 
	    android:orientation="vertical" 
	    android:layout_width="fill_parent" 
	    android:layout_height="fill_parent"> 

	    <EditText
	        android:layout_width="wrap_content"
	        android:layout_height="wrap_content"
	        android:layout_gravity="right"
	        android:gravity="center"
	        android:text="one" />

	</LinearLayout>
        • 效果:
          • 技术分享

 

【总结】

  • android:gravity : 表示当前View,即控件,内部的东西的,对齐方式
    • 常见的是:
      • TableRow中的Button
      • EditText(内部)的文字
      • Button(内部)的文字
  • android:layout_gravity: 表示当前View,即控件本身在父一级内的(即父一级控件所给当前子控件所分配的显示范围内)的对齐方式
    • 常见的是:
      • 当前EditText(在父一级LineLayout所分配给其的显示范围内)的对齐方式
      • 当前的Button(在父一级TableRow所分配给其的显示范围内)的对齐方式 ->此处需要注意的是,很多时候,改变Button内的layout_gravity,常看不到改动的效果,是因为其显示范围和位置,已经由父一级的TableRow的gravity决定了。

总之,拿着代码,多试试,就容易理解了。

【整理】Android中的gravity和layout_gravity区别

标签:

原文地址:http://www.cnblogs.com/qqhfeng/p/4474920.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!