[android] 界面切換的核心方法


根據效果圖拆分界面

 

  1. 主體部分

 

View ==> ViewGroup ==> RelativeLayout,主體部分使用RelativeLayout作為占位

 

ViewViewGroup的區別:ViewGroup有特有的addView()removeView()方法,RelativeLayout添加進來View之后,后一個會覆蓋住前一個ViewLinearLayout添加進View之后,會順序排放,不適合

 

設計原理:

樹形結構的數據處理,遵循組合設計模式

 

  1. 簡單的界面切換

 

找到主體部分的RelativeLayout對象,添加進來View對象

兩秒后切換第二個界面,利用Handler發送延遲消息模擬切換

RelativeLayout對象,添加進來第二個View對象

 

問題:

  1. 清理掉之前界面
  2. 切換動畫
  3. 切換頁面的通用化處理
  4. 使用按鈕點擊切換

 

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;
}
}

 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com