[android] 界面切换的核心方法
根据效果图拆分界面
- 主体部分
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;
}
}
[android] 界面切换的核心方法的更多相关文章
- android 界面切换教程
Android的界面切换其实并没有什么难度,就和java的界面切换一样简单,但是java的使用的是Swing框架进行的切换,而Android使用的是Intent 来切换框架的,这是一个全新的使用方法, ...
- Java线程状态切换以及核心方法
1.Java线程状态 1.1 线程主要状态 ①初始(NEW):新创建了一个线程对象,但还没有调用start()方法.②运行(RUNNABLE):Java线程中将就绪(ready)和运行中(runnin ...
- [android] 界面切换的简单动画
1. 新建个位移动画的xml文件 Activity中开启动画 使用AnimationUtils类加载动画资源文件 left_to_right.xml <?xml version="1. ...
- Android界面刷新方法
Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中 ...
- android设计的布局在阿拉伯语下界面错乱的解决方法
(1)正在AndroidManifest.xml声明文件的application元素中,增加” android:supportsRtl=true” (2)建] androidの设计的布局在阿拉伯语下界 ...
- 自定义viewpager的界面切换动画
核心操作: 1.创建一个类实现 android.support.v4.view.ViewPager.PageTransformer 根据 position 实现判断哪个界面进行界面切换动画 publi ...
- Unity iOS混合开发界面切换思路
Unity iOS混合开发界面切换思路 最近有很多博友QQ 私信 或则 留言联系我,请教iOS和Unity界面之前相互切换的问题,源代码就不私下发你们了,界面跳转功能的代码我直接贴到下面好了,顺带说i ...
- android 界面设计基本知识Ⅲ
本章继续讲述在android界面设计中相关的知识点.介绍内容包括BroadcastReceiver(广播),Service(服务),Widget(小部件),WebView(网页加载控件). 1.Bro ...
- android 界面设计基本知识Ⅱ
上一章讲述了Android界面设计时,一些基本控件的使用,本章主要讲述自定义控件,Fragment和Headler线程机制. 1.自定义控件 (1)基本知识 dp.sp和dx px:像素点 ...
随机推荐
- 推荐一些优秀的SAP网站
著名的SAP论坛:(人气比较旺,可以找到很多问题的回答) http://www.sapfans.com/ 著名的It专业网站的SAP部分:(查找部分资料) http://sap.ittoolbox.c ...
- iOS 之NSOperation(一)
一.NSOperation的介绍 1.NSOperation的作用 配合使用NSOperation和NSOperationQueue实现多线程编程 2.实现多线程的具体步骤 1)将需要执行的操作封装到 ...
- GitHub访问下载太慢解决办法
原因 为什么慢?github的CDN被某墙屏了. 解决方法 绕过dns解析,在本地直接绑定host,该方法也可加速其他因为CDN被屏蔽导致访问慢的网站. 实现 在本地host文件中添加映射,步骤如下: ...
- Effective C++ 改善55个方法
美·Scott Meyers 候捷 电子工业 2011 刚才看到个会议时间有点晚,3.25论文都提交了 谷歌去广告的插件, 最后投了这个会议,刚刚好正合适.我说金钱与时间 ACCUSTOMING YO ...
- 4.nginx动静分离
动静分离,就是将css.js.jpg等静态资源和jsp等动态资源分开处理,以此提高服务器响应速度,提高性能. 核心就是区分动态和静态资源 图片转自:https://www.cnblogs.com/xi ...
- SAP Sybase IQ 操作基础
1.启动 source IQ-16_0.sh 命令行查看安装程序是否成功 start_iq -v2 2.数据库.表空间 start_iq -n utility_db dbisql -c 'uid=db ...
- 实验Complex
#include<iostream> #include<cmath> using namespace std; class Complex { public: Complex ...
- 80x25彩色字符模式
80x25彩色字符模式下显示缓冲区的结构: 在内存地址空间中,B8000H~BFFFFH共32KB的空间,为80x25彩色字符模式的显示缓冲区.往这个地址空间中写入数据,写入的内容会立即出现在显示器上 ...
- (转)Heartbeat+DRBD+NFS高可用案例
原文:http://9861015.blog.51cto.com/9851015/1939521--------------------------------Heartbeat+DRBD+NFS高可 ...
- LeetCode 100.相同的树(C++)
给定两个二叉树,编写一个函数来检验它们是否相同. 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的. 示例 1: 输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1 ...