首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

[转]技艺和设计模式 - 视图和布局

2012-07-18 
[转]技巧和设计模式 --- 视图和布局1.越简单越好??如果一个窗口包含很多视图?[1] 启动动时间长?[2] 测量时

[转]技巧和设计模式 --- 视图和布局

1.越简单越好

?

?

如果一个窗口包含很多视图

?

[1] 启动动时间长

?

[2] 测量时间长

?

[3] 布局时间长

?

[4] 绘制时间长

?

?

如果视图树深度太深

?

[1]?StackOverflowException

?

[2] 用户界面反应速度很慢

?

2.解决的办法

?

?

[1] 使用TextView的复合drawables减少层次

?

?

[2] 使用ViewStub延迟展开视图

?

[3] 使用<merge>合并中间视图

?

[4] 使用RelativeLayout减少层次

?

[5] 使用自定义视图

?

[6] 使用自定义布局

?

关于[1]

?


[转]技艺和设计模式 - 视图和布局
替代为

?


[转]技艺和设计模式 - 视图和布局

?

关于[2]?使用ViewStub延迟展开视图

?


[转]技艺和设计模式 - 视图和布局

首先在XML布局文件中定义 ViewStub

?

?

?

关于[3]使用<merge>合并视图:略

?

关于[4]使用RelativeLayout减少层次,总得意思就是用RelativeLayout解决复杂的布局,比如代替LinearLayout复杂的布局

?

关于[5]自定义视图

?

?

class GridLayout extends ViewGroup {    @Override    protected void onLayout(boolean changed, int l, int t,    int r, int b) {        final int count = getChildCount();        for (int i=0; i < count; i++) {            final View child = getChildAt(i);           if (child.getVisibility() != GONE) {           // 计算子视图的位置          child.layout(left, top, right, bottom);          }        }     }}
?

?

热点排行