在LinearLayout中,如果将其定位方向设为横向排列:android:orientation="horizontal",那么这个布局中的控件将自左向右排列。
但有时会有这样的情况:行的左边有两个控制的同时,行的右边也有一个控制。
这怎么处理呢?
我们可以将右边的控件放在另一个LinearLayout中,同时将其对齐方式设为右对齐:android:gravity="right",还有一点,这个LinearLayout的宽度设为充满父控件: android:layout_width="fill_parent"。这样就行了。
完整的XML代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/bg"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="左边1" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="左边2" />
<!-- 将TextView包在另一个LinearLayout中
注意android:layout_width和android:gravity这两个属性
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="right" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:text="右边" />
</LinearLayout>
</LinearLayout>
android:gravity 属性是对该view中内容的限定.比如一个button 上面的text. 你可以设置该text 相对于view的靠左,靠右等位置.
android:layout_gravity是用来设置该view相对与父view 的位置.比如一个button 在linearlayout里,你想把该button放在linearlayout里靠左、靠右等位置就可以通过该属性设置.
即android:gravity用于设置View中内容相对于View组件的对齐方式,而android:layout_gravity用于设置View组件相对于Container的对齐方式。
当Linear Layout为水平时,可以设置上下
当Linear Layout为垂直时,可以设置左右
在LinearLayout中,如果将其定位方向设为横向排列:android:orientation="horizontal",那么这个布局中的控件将自左向右排列。但有时会有这样的情况:行的左边有两个控制的同时,行的右边也有一个控制。如图:这怎么处理呢?我们可以将右边的控件放在另一个LinearLayout中,同时将其对齐方式设为右对齐:android:gravity
Android动态添加右边对齐按钮Demo,主要代码:
LinearLayout
linearLayout
=new
LinearLayout
(this);
linearLayout
.setGravity(Gravity.RIGHT);
Button button=new Button(this);
button.setText("按钮一");
linearLayout
.addView(button);
button=new Button(this);
button.setText("按钮二");
linearLayout
.addView(button);
m
LinearLayout
Test.addView(
linearLayout
);
如果你希望 一个
组件
的宽高 可以被 里面的内容撑开 宽高自动改变大小 那么就用 Content Size Fitter
当你设置为PreferredSize的时候
会发现 你的width 或者 height 变成灰色的了 类似这样
他有三个值
Unconstrained:
组件
不根据
布局
元素调整 ,可手动修改长宽的值。
MinSize:根据
布局
元素的最小值来调整,不能手动修改长宽的值。
PreferredSize:根据
布局
元素的内容来调整,不能手动修改长宽的值。
简单举个例子 加深理解
最外层容器
在
LinearLayout
中
,如果将其定位方向设为横向排列:android:orientation="horizontal",那么这个
布局
中
的控件将自左向右排列。
但有时会有这样的情况:行的左边有两个控制的同时,行的右边也有一个控制。
这怎么处理呢?
我们可以将右边的控件放在另一个
LinearLayout
中
,同时将其对齐方式设为
右对齐
:android:gravity
<?xml version="1.0" encoding="utf-8"?>
<
LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:id="@+id/activity_main"
android:layout_width="match_parent"
后又做其他设置,右边按钮还是无法右边对齐,后做如下改动后方才实现,
将右边按钮放到另外一个
LinearLayout
中
,并设置该
LinearLayout
的 android:gravity="right",
这个
布局
代码如下
<
LinearLayout
xmlns
转自:http://www.cnblogs.com/xiaoran1129/archive/2013/03/26/2982954.html
linearlayout
水平靠右显示方法
在安卓
中
,只有垂直的
linearlayout
属性里面的内部
组件
靠左靠右才有效,同理,水平的
linearlayout
属性里面的内部
组件
靠上靠下才有效,否则无效由此考虑如何让水平
linearlayout
中
同一行内组