内容部分显示管理(一)
界面切换处理的内容:
1、界面的切换
2、应对重复点击
3、返回键处理
|
android2.3有问题 在onAnimationEnd 的问题,因为该方法运行在主线程 parent.removeView(view); 在2.3会报空指针访问异常 解决:用handler+message来避免该问题 通过发送消息,在消息中执行该操作 |
技术点: ①、 View和ViewGroup 文件(View) 文件夹(ViewGroup) 只有ViewGroup有addView,以及removeView(View)和removeAllViews()方法,而View没有此方法 ViewGroup.addView(view); 组合设计模式 ②动画(xml和代码定义动画)及其监听事件 translate:位移动画 AlphaAnimation:淡入淡出动画 Animation.setAnimationListener( AnimationListener); ③Handler+Message ④代码公共部分的抽取 ⑤equals和==什么时候用? 如果一个类,没有复写Object中的equals方法,那么就用== 如果一个类,复写了Object中的equals方法,那么就用equals方法 ==比对的就是内存的地址,如果没有复写equals方法,和==一样 |
1、界面的切换 核心:通过ViewGroup中的 addView(View)添加一个View到指定的ViewGroup中 removeAllViews()将该ViewGroup中所有的View给移除 removeView(View)将该ViewGroup中执行的View给移除 |
四个大问题:
①当进入到第二个界面的时候,清理掉第一个显示内容
解决:在进来的时候将前面一个View给移除掉
通过前一个View的getParent(),转成ViewGroup来移除removeView(View)或者removeAllViews()
②切换效果处理(动画:a、位移;b、淡入淡出)
解决:采用代码或者代码的方法,来解决第一个View一出去和第二个界面进来的动画效果
以及动画监听,在动画结束后,从ViewGroup中将前一个View给移除出去,注意android2.3问题
③处理changeView满足多个界面的切换要求(参数:targetView)
将多个界面的公共部分,抽取成一个抽象类BaseView,每一个界面都继承该类,然后在changeView就可以通过BaseView,而不是指定某一个View。由于changeView是中间内容的关键方法,所以用一个UImanager来管理该View的切换
④模拟切换,真实的切换
通过UImanager管理,可以在需要的时候调用其中的getView()来实现View的切换。
|
切换机制的说明
①加载第一个界面:创建FristView提供getView方法,用于加载时显示
②界面切换动画处理
处理AnimationListener
③抽取界面
定义抽象类规范中间部分图形管理,对外提供获取中间视图信息入口
④内容管理:中间内容部分显示管理
|