[android] 界面切换的核心方法
2023-02-18 15:47:21 时间
根据效果图拆分界面
- 主体部分
View ==> ViewGroup ==> RelativeLayout,主体部分使用RelativeLayout作为占位
View和ViewGroup的区别:ViewGroup有特有的addView()和removeView()方法,RelativeLayout添加进来View之后,后一个会覆盖住前一个View;LinearLayout添加进View之后,会顺序排放,不适合
设计原理:
树形结构的数据处理,遵循组合设计模式
- 简单的界面切换
找到主体部分的RelativeLayout对象,添加进来View对象
两秒后切换第二个界面,利用Handler发送延迟消息模拟切换
RelativeLayout对象,添加进来第二个View对象
问题:
- 清理掉之前界面
- 切换动画
- 切换页面的通用化处理
- 使用按钮点击切换
MainActivity.java
private Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { loadMemberView(); } }; /** * 初始化主体 */ public void initMiddle() { mainContainer=(RelativeLayout) findViewById(R.id.il_main); loadLoginView(); handler.sendEmptyMessageDelayed(1, 2000); } /** * 加载登陆界面 */ private void loadLoginView() { View child=new IndexView(this).getLoginView(); mainContainer.addView(child); } /** * 加载会员界面 */ private void loadMemberView() { View child=new IndexView(this).getMemberView(); mainContainer.removeAllViews(); mainContainer.addView(child); }
IndexView.java
package com.tsh.lottery.views; import android.content.Context; import android.view.View; import android.widget.TextView; /** * 界面 * @author taoshihan * */ public class IndexView { private Context context; public IndexView(Context context) { this.context = context; } /** * 获取登陆界面 * @return */ public View getLoginView() { TextView tv=new TextView(context); tv.setText("我是登陆界面"); return tv; } /** * 获取会员界面 * @return */ public View getMemberView() { TextView tv=new TextView(context); tv.setText("我是会员界面"); return tv; } }
相关文章
- 耶鲁两栖机器龟登Nature封面,一种部件搞定水上、陆地行动
- Crane 发布国内首个云原生应用碳排放计算优化器
- 7 Papers & Radios | 两栖机器龟登上Nature封面;深度去模糊综述论文入选IJCV
- SIGGRAPH Asia 2022|告别手Key!上科大提出实时面捕,精细到微表情
- 图灵奖得主Jack Dongarra:超级计算顶部还有很大空间
- 云图说丨手把手教你为容器应用配置弹性伸缩策略
- Spark优化之小文件是否需要合并?
- 如何让“哑”终端进化,你知道吗?
- Web前端性能优化,应该怎么做?
- 看DLI服务4核心如何提升云服务自动化运维
- 5G从小就梦想着自己要迎娶:高速率、低时延、大容量三个老婆
- 一文读懂GaussDB(for Mongo)的计算存储分离架构
- 9个常用ES6特性归纳(一般用这些就够了)
- DT时代释放金融数据价值,驱动金融商业裂变
- 构造、析构期间被调虚函数发生的惨案,长教训!
- 多角度分析,通讯时序数据的预测与异常检测挑战
- 内存总是不够?HBase&GeoMesa配置优化了解一下
- 云图说 | 3分钟创建一个游戏类工作负载
- 【API进阶之路】帮公司省下20万调研费!如何巧用情感分析API实现用户偏好调研
- Web 开发必须掌握的三个技术:Token、Cookie、Session