Android之动态改变布局
16lz
2021-01-26
一提到动态改变布局,那肯定是通过Java源码来改变了。
这可以拿iOS的约束布局做类比。
在iOS中布局所需要的约束可以通过outlet拉到源代码中,并通过OC或者SWIFT源代码在运行时对其进行控制。
在Android中,由于视图是视图,布局规则是布局规则(在Android中用于布局的叫做规则),2者是分开的。由于你是在xml中写的控件,所以你首先需要把控件引入到Java源代码中,然后再去获取该控件的布局规则,之后你再对获取到的规则进行设置,这2者都设置好了,你再推倒xml中去。
就这么简单啊。
首先获取控件。
this.lineView = findViewById(R.id.login_lineview);
this.lineView.setBackgroundColor(Color.WHITE);
设置布局参数
RelativeLayout.LayoutParams lineViewLayoutParams = (RelativeLayout.LayoutParams)this.lineView.getLayoutParams();
lineViewLayoutParams.height = Tools.gainScreenWidth(this) * 2 / 3;
lineViewLayoutParams.setMarginEnd(Tools.gainScreenHeight(this) * 3 / 8);
把布局参数添加到控件上面。
this.lineView.setLayoutParams(lineViewLayoutParams);
这个就是Android中的动态布局了。
更多相关文章
- Android(安卓)fill_parent、wrap_content和match_parent的区别
- Android之解决全屏切换非全屏的页面压缩问题
- Android颜色编辑器的制作中遇到的问题
- Android(安卓)Studio 提示与技巧(官方文档翻译)
- Android(安卓)自定义控件布局 NullPointerException findViewByI
- Android无限循环ViewPager
- Android让VideoView填充满屏幕/父布局并保证不变形
- 关于android的零碎问题的整理
- Android(安卓)XML 中schema和自定义属性的关系