标签:
根据效果图拆分界面
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; } }
标签:
原文地址:http://www.cnblogs.com/taoshihan/p/5621498.html