主要用來(lái)動(dòng)態(tài)控制子view的擺放位置
TextView textView = new TextView(context);
ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 200);
layoutParams.width=100;
layoutParams.height=200;
textView.setLayoutParams(layoutParams);
構(gòu)造函數(shù)可是設(shè)置三種參數(shù)
- 固定數(shù)值,單位px
- ViewGroup.LayoutParams.MATCH_PARENT ,意思為寬度和父view相同
- ViewGroup.LayoutParams.WRAP_CONTENT,意思為自適應(yīng)
注意每個(gè)view所能獲得的layoutparams都是他所對(duì)應(yīng)的父view
比如textview外層包裹著的是一個(gè)linearlayout,那么
LinearLayout.LayoutParams layoutParams1 = (LinearLayout.LayoutParams) textView.getLayoutParams();
//設(shè)置權(quán)重比例
layoutParams1.weight=1;
//設(shè)置上部間距
layoutParams1.topMargin=5;
//設(shè)置右邊間距
layoutParams1.setMarginEnd(20);
//設(shè)置四周間距
layoutParams1.setMargins(3,3,3,3);
如果是RelativeLayout:
RelativeLayout.LayoutParams layoutParams1 = (RelativeLayout.LayoutParams) textView.getLayoutParams();
//設(shè)置位置居中
layoutParams1.addRule(RelativeLayout.CENTER_IN_PARENT);
//設(shè)置在某一個(gè)id所對(duì)應(yīng)的view的右邊
layoutParams1.addRule(RelativeLayout.RIGHT_OF, R.id.all);
layoutParams1.topMargin=5;
layoutParams1.setMarginEnd(20);
layoutParams1.setMargins(3,3,3,3);
layoutParams1.removeRule(RelativeLayout.CENTER_IN_PARENT);
如果是FrameLayout:
FrameLayout.LayoutParams layoutParams1 = (FrameLayout.LayoutParams) textView.getLayoutParams();
//設(shè)置位置居中
layoutParams1.gravity = Gravity.CENTER;
layoutParams1.topMargin = 5;
layoutParams1.setMarginEnd(20);
layoutParams1.setMargins(3, 3, 3, 3);