父View
需要设置三项,orientation,weightsum,gravity
子view
需要设置一项 layout_weight
注意:
如果父View的orientation是h,子view的width需要设置为0
如果父View的orientation是v,子view的height需要设置为0
xml代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffff"
android:gravity="right"
android:orientation="horizontal"
android:weightSum="6" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="top"
android:orientation="vertical"
android:weightSum="6" >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:text="M"
android:textColor="#ff0000" />
</LinearLayout>
</LinearLayout>
Java代码:
private void initUI()
{
this.setLayoutParams(backParams);
this.setOrientation(VERTICAL);
this.setGravity(Gravity.CENTER_VERTICAL);
this.setWeightSum(3);
secondline.setOrientation(HORIZONTAL);
secondline.setWeightSum(4);
secondline.setGravity(Gravity.CENTER_HORIZONTAL);
notice.setGravity(Gravity.CENTER);
secondline.addView(notice, biggerParams);
this.addView(secondline, smallerParams);
}
private void initParams()
{
backParams = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT);
smallerParams = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, 0);
smallerParams.weight = 1;
biggerParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.MATCH_PARENT);
biggerParams.weight = 2;
}