本文目录
- 如何代码设定relativelayout 的layout
- 怎么在代码中设置RelativeLayout的宽高
- relativelayout 是什么
- 如何在代码中设置RelativeLayout的宽高
- constraintlayout和relativelayout有什么区别
- RelativeLayout和FrameLayout的区别
如何代码设定relativelayout 的layout
设置RelativeLayout
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.grid_item);
relativeView=(RelativeLayout)findViewById(R.layout.grid_item);
new Handler().postDelayed(new Runnable(){
@Override
public void run(){
relativeView.setLayoutParams(new RelativeLayout.LayoutParams(100,200));
}
}, 1000); ///延时,或不可行
}
可行方法:
RelativeLayout.LayoutParams linearParams = (RelativeLayout.LayoutParams)mScrollView.getLayoutParams();
linearParams.height = middleHeight;
mScrollView.setLayoutParams(linearParams);
设置的控件RelativeLayout 中,如果是 LinerLayout,或者是FrameLayout,做相应改动即可。
怎么在代码中设置RelativeLayout的宽高
LayoutParams params = new LayoutParams(width,height);
然后使用RelativeLayout relativeLayout.setLayoutparams(params);就可以在程序中控制RelativeLayout的宽和高了。
不过需要注意的是,LayouParams的导入包的问题,导入的时候会提示很多,一定要选择RelativeLayout.LayoutParams这个才正确,否则出现ClassCastExcetpion异常.
relativelayout 是什么
Android 五大布局: FrameLayout(框架布局),LinearLayout (线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局)。
FrameLayout
所有东西依次都放在左上角,会重叠,这个布局比较简单,也只能放一点比较简单的东西。
LinearLayout
每一个LinearLayout里面又可分为垂直布局(android:orientation=“vertical“)和水平布局(android:orientation=“horizontal“ )。当垂直布局时,每一行就只有一个元素,多个元素依次垂直往下;水平布局时,只有一行,每一个元素依次向右排列。
AbsoluteLayout
绝对布局用X,Y坐标来指定元素的位置,这种布局方式也比较简单,但是在屏幕旋转时,往往会出问题,而且多个元素的时候,计算比较麻烦。
RelativeLayout
相对布局可以理解为某一个元素为参照物,来定位的布局方式。主要属性有:相对于某一个元素android:layout_below、 android:layout_toLeftOf相对于父元素的地方android:layout_alignParentLeft、android:layout_alignParentRigh
TableLayout
每一个TableLayout里面有表格行TableRow,TableRow里面可以具体定义每一个元素。
每一个布局都有自己适合的方式,这五个布局元素可以相互嵌套应用,做出美观的界面。
-out
如何在代码中设置RelativeLayout的宽高
设置RelativeLayout的宽高:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.grid_item);
relativeView=(RelativeLayout)findViewById(R.layout.grid_item);
new Handler().postDelayed(new Runnable(){
@Override
public void run(){
relativeView.setLayoutParams(new RelativeLayout.LayoutParams(100,200));
}
}, 1000); ///延时,或不可行
}
可行方法:
RelativeLayout.LayoutParams linearParams = (RelativeLayout.LayoutParams)mScrollView.getLayoutParams();
linearParams.height = middleHeight;
mScrollView.setLayoutParams(linearParams);
设置的控件RelativeLayout 中,如果是 LinerLayout,或者是FrameLayout,做相应改动即可!
-at
constraintlayout和relativelayout有什么区别
constraintLayout最好的一点就是对可视化视窗的操作支持的特别好,以前我们用线性或者相对布局时基本都是用xml编辑的,用可视化就是闲得蛋疼,这个视图就是为了可视化而生的,个人感觉有取代相对布局的可能,你只用鼠标拖拽操作就可以对整个视图进行控制,避免了视图的反复嵌套,对程序的性能也很有帮助!
-out
RelativeLayout和FrameLayout的区别
你好 FrameLayout主要是在多层之间的布局,RelativeLayout则是在同层之间不同位置之间的布局,效果上没有什么大的区别,都可以实现,只是看哪种实现更容易