新年第一篇文章,首先祝大家新年快乐,马年大吉。。
今天在做UI优化时碰到一个问题,几个界面使用同一布局,但是又有几处显示不同,仅仅使用控件的Visible属性来控制不能完全实现,怎么办呢?于是就想起了用代码设置控件属性的方法。
在这里不得不说,android提供的XML使我们的UI开发便捷方便了不少,但是,XML也不是万能的,如果想要动态的修改控件大小,那也只能依靠代码了,对于常用的控件,如 TextView、ImageView、ListView等等,这些控件,都是直接或者间接继承自View,如果想要设置控件属性,那么就需要一个ViewGroup.LayoutParams的实例对象,再用View的
setLayoutParams(ViewGroup.LayoutParams params)这个方法,将实例对象设置进去,不得不说的是,我们不仅可以用 ViewGroup.LayoutParams 实例对象,也可以使用RelativeLayout.LayoutParams 或者LinearLayout.LayoutParams或者FrameLayout.LayoutParams实例对象,因为这几个常用的layout都是继承自ViewGroup。下边我们看看具体的使用方法吧。
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.MATCH_PARENT
,RelativeLayout.LayoutParams.MATCH_PARENT);
lp.setMargins(0, 0, 0, 3);
lv.setLayoutParams(lp);
上边代码中lv是一个ListView实例,通过上述方法设置后,可以是lv的Margins属性设置为(0,0,0,3).
具体可以设置什么属性,还需要大家看一看google提供的源码慢慢研究,这里只是给大家提供一个思路,希望对大家有所帮助。