设定重力
linearLayout.setGravity(Gravity.CENTER);
设置布局重力
// the LinearLayout's parent is a FrameLayout FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(400, 400); params.gravity = Gravity.TOP|Gravity.RIGHT; linearLayout.setLayoutParams(params);
以前,我已经解释了布局中视图的"gravity"和"layout_gravity"之间的区别.
设置gravity
一个的LinearLayout
本身的变化的范围内它的视图的位置.设置layout_gravity会LinearLayout
更改LinearLayout
在其父布局中的排列方式.
此图像显示LinearLayout
(白色)内的FrameLayout
(棕色).该LinearLayout
的gravity
设置为center_horizontal
和它layout_gravity
被设置为right|bottom
.
这是xml:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_ android:layout_ > <LinearLayout android:id="@+id/llExample" android:layout_ android:layout_ android:layout_gravity="right|bottom" android:background="#e3e2ad" android:gravity="center_horizontal" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_ android:layout_ android:background="#bcf5b1" android:text="TextView 1" /> <TextView android:id="@+id/textView1" android:layout_ android:layout_ android:background="#aacaff" android:text="TextView 2" /> </LinearLayout> </FrameLayout>
下面的代码演示如何改变这两个gravity
和layout_gravity
的LinearLayout
.
public class LinearLayoutGravity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.linear_layout_gravity); // Change the gravity (not layout_gravity) of the LinearLayout LinearLayout ll = (LinearLayout) findViewById(R.id.llExample); ll.setGravity(Gravity.CENTER); // Change the layout_gravity (not gravity) of the LinearLayout FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(400, 400); params.gravity = Gravity.TOP|Gravity.RIGHT; ll.setLayoutParams(params); } }
这是结果:
RelativeLayout
和LinearLayout
重力:有什么影响?