LinearLayout与Relativivelayout

来源:互联网 发布:arttemplate需要的数据 编辑:程序博客网 时间:2024/06/06 10:38

一些需要记住的知识点。
android:layout_gravity是本元素对父元素的重力方向。
android:layout_gravity属性则设置控件本身相对于父控件的显示位置
android:gravity是本元素所有子元素的重力方向。
布局中设置:

android:gravity="center" //left,right, top, bottomandroid:gravity="center_horizontal"

代码中设置:

ll_main.setGravity(Gravity.CENTER|Gravity.BOTTOM);// 相当于布局中gravity属性  

接下来看Layout_gravity
布局中设置:

android:layout_gravity="center_vertical"android:layout_gravity="left"android:layout_gravity="left|bottom"

代码中设置

LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) tv_1.getLayoutParams();layoutParams.gravity=Gravity.CENTER;tv_1.setLayoutParams(layoutParams);

当 android:orientation=”vertical” 时, layout_gravity属性只有水平方向的设置才起作用,垂直方向的设置不起作用。即:left,right,center_horizontal 是生效的。

当 android:orientation=”horizontal” 时, layout_gravity属性只有垂直方向的设置才起作用,水平方向的设置不起作用。即:top,bottom,center_vertical 是生效的。
Relative中子View的android:layout_gravity=”right”属性是无效的,应该用 android:layout_alignParentRight=”true”

总结起来: LinearLayou的属性 gravity ,其子元素受LinearLayout.LayoutParams控制,LinearLayout.LayoutParams的属性 Layout_gravity ,layout_weigh

RelativeLayou的属性 gravity ,其子元素受RelativeLayout.LayoutParams控制,RelativeLayout.LayoutParams的属性 中无没有Layout_gravity, layout_weight而有layout_alignParentRight,layout_toRightOf等等。。。

推论
设置padding:

tv_1.setPadding(60,0,0,0); 

设置margin:

LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) tv_1.getLayoutParams();layoutParams.leftMargin=60;tv_1.setLayoutParams(layoutParams); 

代码中设置alignParentRignt

RelativeLayout.LayoutParams addParams = new RelativeLayout.LayoutParams(                    RelativeLayout.LayoutParams.WRAP_CONTENT,                    RelativeLayout.LayoutParams.WRAP_CONTENT);//            addParams.gravity = Gravity.BOTTOM | Gravity.RIGHT;            addParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);            addParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);            addParams.rightMargin = ViewUtil.computeDimension(getActivity(),                    getActivity().getResources().getInteger(R.integer.people_dialpad_float_button_margin_right));  addParams.bottomMargin = ViewUtil.computeDimension(getActivity(),                   getResources().getInteger(R.integer.people_dialpad_float_button_margin_bottom));layout.addView(view, addParams);
0 0
原创粉丝点击