android 基础 布局优化

android 布局优化

样式style

属性
几个控件的属性的几乎相同
在style文件中添加如下样式
<style name="DemoBtn">  
	<item name="android:layout_width">match_parent</item>  
	<item name="android:layout_height">wrap_content</item>  
	<item name="android:textSize">16dp</item>  
	<item name="android:gravity">center</item>  
	<item name="android:layout_marginTop">5dp</item>  
	<item name="android:layout_marginBottom">5dp</item>  
</style> 

在控件使用的时候把样式添加进属性
style ="@style/DemoBtn"


嵌套include

布局,如果布局分为几个模块,如侧滑,主页,底部导航,那么可以用来清晰的有include来处理
当然如果几个控件是完全相同,就可以用一种更加简洁方便的方法来简化代码,减少重复性 -----使用include标签。这种效果style就能实现。
所以我一般把include用来处理模块,这样我觉得更加合理。


自定义view

组合控件
自定义控件
观察ui中是否有相同的组合控件。再进行设置,


LinearLayoutCompat

linearLayout存在分割线
V7包中存在的 LinearLayoutCompat 组件,用于给LinerLayout 中的子元素item之间设置间隔线的,
在LinearLayoutCompat设置:
app:divider="@drawable/line"
app:dividerPadding="25dp"
app:showDividers="middle|beginning|end"
为每个item设置分割线,就不用来item下面添加view来设置分割线了。


ViewStub

懒加载布局
viewstub标签同include标签一样可以用来引入一个外部布局,
不同的是,viewstub引入的布局默认不会扩张,即既不会占用显示也不会占用位置,从而在解析layout时节省cpu和内存。


在程序的运行期间,某个布局在Inflate后,就不会有变化,除非重新启动。
因为ViewStub只能Inflate一次,之后会被置空,所以无法指望后面接着使用ViewStub来控制布局。
所以当需要在运行时不止一次的显示和隐藏某个布局,那么ViewStub是做不到的。这时就只能使用View的可见性来控制了。



猜你喜欢

转载自blog.csdn.net/l331258747/article/details/52846309