android布局中android:layout_gravity="right"的问题

时间:2022-03-10 05:24:27
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="horizontal" 
 android:background = "#AABBCC" 
 android:layout_gravity= "center"
 android:layout_height = "300dp" 
    android:layout_width = "300dp" >
 <TextView android:id="@+id/title" 
  android:layout_width="wrap_content"
  android:text="wrap_content"
  android:layout_height="wrap_content" 
  android:textColor="#FFFFFFFF"
  android:textSize="22px" />
 <Button android:id="@+id/view_btn"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="test" 
  android:layout_gravity="right"/>
</LinearLayout>

我原来想这样设置可以把button弄到屏幕的最右面,但是发现并没有,他只是贴着TextView,究竟如何设置才能使Button居右呢?

谢谢指导

15 个解决方案

#1


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="horizontal"  
 android:background = "#AABBCC"  
 android:layout_gravity= "center"
 android:layout_height = "300dp"  
  android:layout_width = "300dp" >
 <TextView android:id="@+id/title"  
  android:layout_width="wrap_content"
  android:text="wrap_content"
  android:layout_height="wrap_content"  
  android:textColor="#FFFFFFFF"
  android:textSize="22px" />
 <Button android:id="@+id/view_btn"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="test"  
   android:layout_gravity="right"/>
</LinearLayout>
到底想居左还是居右?

#2


好几种方法的。你的这个设置是设置你的button的右对齐。。。你可以把textview的android:layout_weight="1"
或者把android:layout_gravity="right"加到你的linearlayout里。。。
上面两个方法都行。但效果不一样,看你自己想要什么 样的,然后根据别的属性自己调解

#3


应该不冲突的吧,layout_gravity是对于父布局的,第一个的父布局是全屏,第二个的是LinearLayout;

而且就算去掉第一个layout_gravity,button还是贴着TextView,并没有居右~!~

谢谢

#4


不是  我看错了,以为你都在button里面定义的呢

#5


我觉得要居右的话,可以用哪种相对布局啊,
android:layout_alignParentRight="true"
可以设置它距离左边距的尺寸:
如:
android:layout_marginleft="10dip"

#6


哦2楼的android:layout_weight="1"的方法解决了我的问题,谢谢先.
但是,原理不是很明白,它为啥能够解决呢?

android:layout_weight="1"是设置布局的权重,现在只是设了TextView的,为什么会有这个效果呢?

是这样理解的吗?把没有设权重的View "挤开" 然后剩下的空间,安装权重的大小分配.

我这里因为只是设置了TextView,所以剩下的空间都让TextView都占用了,而Button被挤到了最右???

编程能力比较烂=,=所以说得好俗哦,不好意思~!

谢谢指导

#7


android:layout_alignParentRight="true" 和我的是一样的吧,都是相对于父布局,然后启用了Right~!~

android:layout_marginleft="10dip" 想过,不过反正是在学习练练,不想写死~!~

#8


学习中

#9


layout_weight 用于给一个线性布局中的诸多视图的重要度赋值,所有的视图都有一个layout_weight值,默认为零,意思是需要显示多大的视图就占据多大的屏幕空 间。若赋一个高于零的值,则将父视图中的可用空间分割,分割大小具体取决于每一个视图的layout_weight值以及该值在当前屏幕布局的整体 layout_weight值和在其它视图屏幕布局的layout_weight值中所占的比率而定。

举个例子:比如说我们在 水平方向上有一个文本标签和两个文本编辑元素。该文本标签并无指定layout_weight值,所以它将占据需要提供的最少空间。如果两个文本编辑元素每一个的layout_weight值都设置为1,则两者平分在父视图布局剩余的宽度(因为我们声明这两者的重要度相等)。如果两个文本编辑元素其中第一个的layout_weight值设置为1,而第二个的设置为2,则剩余空间的三分之二分给第一个,三分之一分给第二个(数值越小,重要度越高)。

权重的数值越小,重要度越高是需要设置为fill_parent的,如果是像我找个设置,则数值越小,重要度越低


不过,还是不知道为什么我这里用android:layout_gravity="right"为什么没有前右靠拢呢~~

#10


引用 9 楼 forgottenp 的回复:
layout_weight 用于给一个线性布局中的诸多视图的重要度赋值,所有的视图都有一个layout_weight值,默认为零,意思是需要显示多大的视图就占据多大的屏幕空 间。若赋一个高于零的值,则将父视图中的可用空间分割,分割大小具体取决于每一个视图的layout_weight值以及该值在当前屏幕布局的整体 layout_weight值和在其它视图屏幕布局的layout_weight值中所占的……

对你最后一句我再回答一下。。为什么 没靠右。你现在试试。把button的layout_width值设置成为fill_parent试一下。。。然后你是不是看到你的字在右边了?在你按键的右边。。。你如果还不清楚,你现在只加一个button,别的什么都不加。把button的width和hight都设置成fill_parent。这时,你的button是布满整个界面的。然后你再设置gravity里的值。一个一个试。你就能看到里面的字的变化了。。学会了。记得给我追加分

#11


gravity使Button里面的文字居右我明白;不过,我不明白为什么我这里的layout_gravity没作用.

gravity是View里面的文字的排版,layout_gravity是对其父布局的排版.但是layout_gravity硬是没作用.

后来,试着把LinearLayout变成RelativeLayout,把android:layout_gravity="right"变成android:layout_alignParentRight="true"又可以咯=,=

所以还是不明白这个layout_gravity为啥不作用=,=

#12


学习了哇

#13


设置了android:layout_gravity="center"
android:layout_centerHorizontal="true"
android:gravity="center"
为什么都不好使?
我是在ListView的布局TextView里设计的,我想让ListView的Item里的文字居中

指点一下

#14


同样问题,用2楼方法解决了,
但其实也没搞懂 原因,
期待有人解释的直白些

#15


我也不懂

#1


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="horizontal"  
 android:background = "#AABBCC"  
 android:layout_gravity= "center"
 android:layout_height = "300dp"  
  android:layout_width = "300dp" >
 <TextView android:id="@+id/title"  
  android:layout_width="wrap_content"
  android:text="wrap_content"
  android:layout_height="wrap_content"  
  android:textColor="#FFFFFFFF"
  android:textSize="22px" />
 <Button android:id="@+id/view_btn"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="test"  
   android:layout_gravity="right"/>
</LinearLayout>
到底想居左还是居右?

#2


好几种方法的。你的这个设置是设置你的button的右对齐。。。你可以把textview的android:layout_weight="1"
或者把android:layout_gravity="right"加到你的linearlayout里。。。
上面两个方法都行。但效果不一样,看你自己想要什么 样的,然后根据别的属性自己调解

#3


应该不冲突的吧,layout_gravity是对于父布局的,第一个的父布局是全屏,第二个的是LinearLayout;

而且就算去掉第一个layout_gravity,button还是贴着TextView,并没有居右~!~

谢谢

#4


不是  我看错了,以为你都在button里面定义的呢

#5


我觉得要居右的话,可以用哪种相对布局啊,
android:layout_alignParentRight="true"
可以设置它距离左边距的尺寸:
如:
android:layout_marginleft="10dip"

#6


哦2楼的android:layout_weight="1"的方法解决了我的问题,谢谢先.
但是,原理不是很明白,它为啥能够解决呢?

android:layout_weight="1"是设置布局的权重,现在只是设了TextView的,为什么会有这个效果呢?

是这样理解的吗?把没有设权重的View "挤开" 然后剩下的空间,安装权重的大小分配.

我这里因为只是设置了TextView,所以剩下的空间都让TextView都占用了,而Button被挤到了最右???

编程能力比较烂=,=所以说得好俗哦,不好意思~!

谢谢指导

#7


android:layout_alignParentRight="true" 和我的是一样的吧,都是相对于父布局,然后启用了Right~!~

android:layout_marginleft="10dip" 想过,不过反正是在学习练练,不想写死~!~

#8


学习中

#9


layout_weight 用于给一个线性布局中的诸多视图的重要度赋值,所有的视图都有一个layout_weight值,默认为零,意思是需要显示多大的视图就占据多大的屏幕空 间。若赋一个高于零的值,则将父视图中的可用空间分割,分割大小具体取决于每一个视图的layout_weight值以及该值在当前屏幕布局的整体 layout_weight值和在其它视图屏幕布局的layout_weight值中所占的比率而定。

举个例子:比如说我们在 水平方向上有一个文本标签和两个文本编辑元素。该文本标签并无指定layout_weight值,所以它将占据需要提供的最少空间。如果两个文本编辑元素每一个的layout_weight值都设置为1,则两者平分在父视图布局剩余的宽度(因为我们声明这两者的重要度相等)。如果两个文本编辑元素其中第一个的layout_weight值设置为1,而第二个的设置为2,则剩余空间的三分之二分给第一个,三分之一分给第二个(数值越小,重要度越高)。

权重的数值越小,重要度越高是需要设置为fill_parent的,如果是像我找个设置,则数值越小,重要度越低


不过,还是不知道为什么我这里用android:layout_gravity="right"为什么没有前右靠拢呢~~

#10


引用 9 楼 forgottenp 的回复:
layout_weight 用于给一个线性布局中的诸多视图的重要度赋值,所有的视图都有一个layout_weight值,默认为零,意思是需要显示多大的视图就占据多大的屏幕空 间。若赋一个高于零的值,则将父视图中的可用空间分割,分割大小具体取决于每一个视图的layout_weight值以及该值在当前屏幕布局的整体 layout_weight值和在其它视图屏幕布局的layout_weight值中所占的……

对你最后一句我再回答一下。。为什么 没靠右。你现在试试。把button的layout_width值设置成为fill_parent试一下。。。然后你是不是看到你的字在右边了?在你按键的右边。。。你如果还不清楚,你现在只加一个button,别的什么都不加。把button的width和hight都设置成fill_parent。这时,你的button是布满整个界面的。然后你再设置gravity里的值。一个一个试。你就能看到里面的字的变化了。。学会了。记得给我追加分

#11


gravity使Button里面的文字居右我明白;不过,我不明白为什么我这里的layout_gravity没作用.

gravity是View里面的文字的排版,layout_gravity是对其父布局的排版.但是layout_gravity硬是没作用.

后来,试着把LinearLayout变成RelativeLayout,把android:layout_gravity="right"变成android:layout_alignParentRight="true"又可以咯=,=

所以还是不明白这个layout_gravity为啥不作用=,=

#12


学习了哇

#13


设置了android:layout_gravity="center"
android:layout_centerHorizontal="true"
android:gravity="center"
为什么都不好使?
我是在ListView的布局TextView里设计的,我想让ListView的Item里的文字居中

指点一下

#14


同样问题,用2楼方法解决了,
但其实也没搞懂 原因,
期待有人解释的直白些

#15


我也不懂