(转载)Android两种Tab分页的方式:TabActivity和ActivityGroup以及Android项目几种常见的应用架构...

在Android里面Tab分页,常用的方法有两种:

一、TabActivity和TabHost的结合

1.主类继承TabActivity

public class Tagpage extends TabActivity

2.获取当前TabHost对象

final TabHost tabHost = getTabHost();

3.添加Tab分页标签,这里就是关键,把每个分页面链接成Activity。页面的跳转,即是Activity的跳转。

tabHost.addTab(tabHost.newTabSpec("Tab1") .setIndicator("tab2", getResources().getDrawable(R.drawable.a1)).setContent(new Intent(this, Page1.class)));

二、ActivityGroup和GridView的结合

1.主类继承ActivityGroup

public class GridViewTabPage extends ActivityGroup

2.获取每个子页面的Activity视图

Intent intent = new Intent(GridViewTabPage.this, Page1.class);

subPageView = getLocalActivityManager().startActivity("subPageView" + i, intent);

3.加载到容器

pageContainer.addView(subPageView .getDecorView(),LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);

如果Tab选项过多,可以采用Gallery+ActivityGroup结合的实现方式。

 

1、单个Activity架构(推荐)

首页是Activity,里面页面为View,头部底部栏都是公用的,只是改变文字和图案。底部导航栏为RadioButton,中部可以滑动切换。跳转很快,但是首页不流畅。

这种架构的好处是思路清晰,系统运行开销小。缺点是控制不好的话代码混乱,而且生命周期不好管理。

2、多个Activity-利用BaseActivity提供共性

3、多个Activity-利用TabActivity

MainActivity(TabActivity)->子Activity(BaseActivty)

代码与思路都清晰,BaseActivity拥有相同的后退和头部底部栏。

3.1 MainActivity(TabActivity)->子Activity(ActivityGroup)->孙子Activity(BaseActivty)

PS:适合需要在一个TabHost内实现多个Activity的跳转

3.2 Radiobutton与TabActivity结合跳转(代码非常清晰)

4、多个Activity-ActivityGroup(官方已经标为不推荐)

底部栏用GridView实现,底部也是用RadioButton。

转载于:https://www.cnblogs.com/bianmajiang/p/3964579.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/407191.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSS3之Transition

css的transition允许css的属性值在一定的时间区间内平滑地过渡。这种效果可以在鼠标单击、获得焦点、被点击或对元素任何改变中触发,并圆滑地以动画效果改变CSS的属性值 1.语法:transition: property duration timing-function delay; 参数1&#xff1…

解决qrcode动态生成二维码时多次点击生成多个二维码的问题

getEwm(url){document.getElementById("qrcode").innerHTML "";var qrcode new QRCode(this.$refs.qrCodeUrl, {text: url,width: 200,height: 200,colorDark: #000000,colorLight: #ffffff,correctLevel: QRCode.CorrectLevel.H})},即生成二维码之前先将…

无线运维——J2ME和WAP运维方式的优缺点

随着信息技术的发展,软件产品进入了多接入渠道的新阶段,这些接入渠道既包括传统的Socket、Web等方式,也包含WAP, SMS,EMAIL等方式。网络管理软件作为软件产品的一个小的分支,在多接入渠道方面,也有了很大的发展。今天我…

没有光驱怎样从硬盘上安装Windows XP系统

不少朋友问我,电脑上的光驱坏了,要重装系统怎么办?下面我就给大家介绍如何从从硬盘安装系统。 一、准备工作 1、准备一个原版XP SP3系统,用WINRAR解压把I386文件包直接提取出来。只需提取I386文件包,其它的不需要了。…

UVA 1025 A Spy in the Metro DP水题

简单DAG&#xff0c;每个状态有三种决策&#xff0c;原地傻等&#xff0c;上往左开的车&#xff0c;上往右开的车。 #include <cstdio> #include <cstring> #include <iostream> #include <map> #include <set> #include <vector> #includ…

CSS3之Transform

Transform字面上就是变形&#xff0c;改变的意思。在CSS3中transform主要包括以下几种&#xff1a;旋转rotate、扭曲skew、缩放scale和移动translate以及矩阵变形matrix 语法&#xff1a;transform: rotate | scale | skew | translate |matrix 1.旋转rotate rotate(<ang…

解决 “数据大屏“ 展示的屏幕适配问题

现在非常流行的大数据可视化方案&#xff0c;不过要做数据大屏有一个很重要的问题就是屏幕适配。 vue项目使用flexible.js和rem适配 vue中使用flexible.js实现屏幕自适应 一、引入flexible文件 flexible是移动端屏幕适配非常著名的的插件&#xff0c;能够帮助我们修改rem的值&…

论图书营销中的“托”

论图书营销中的“托” 一、引言 提到“托”&#xff0c;让我想起了小时候&#xff08;1987年左右&#xff09;发生在汉正街的一些关于“拖”的故事。这些故事大致的模式都差不多&#xff1a;若干人一伙&#xff0c;一部分人充当卖主&#xff0c;在街边摆个地摊&#xff08;不知…

共享内存---shmget shmat shmdt

From: http://fengxue103.blog.hexun.com/32303320_d.html 要使用共享内存&#xff0c;应该有如下步骤&#xff1a; 1.开辟一块共享内存 shmget() 2.允许本进程使用共某块共享内存 shmat() 3.写入/读出 4.禁止本进程使用这块共享内存 shmdt() 5.删除这块共享内存 shmctl()或者命…

React开发(127):引入icon的方式

新增 icon 步骤&#xff1a;1&#xff0c;找到对应icon库&#xff0c;然后点击下载至本地按钮。2&#xff0c;解压下载的文件&#xff0c;找到 iconfont.css 3&#xff0c;打开该文件&#xff0c;从第三个类开始复制&#xff0c;然后集体替换这个文件的第三个类

“入洞房与度蜜月”的来历

中华民族文明史距今已有五千多年了&#xff0c;人们把结婚仍然称为“入洞房”&#xff0c;尽管人类从洞穴式居住过渡到今天的高楼大厦&#xff0c;但入洞房这一名词至今仍未改变。从来没见过谁把“入洞房”改为“入楼房”。 传说&#xff0c;这是我们祖先轩辕黄帝规定下来的…

STL容器的capacity()和reserve()演示-----vector

#include <iostream>#include <vector>using namespace std;int main(){vector<int> v;cout<<v.size()<<", "<< v.capacity()<<endl;v.reserve(12);for(int i 0; i < 13; i) // 超出vector本身容量后&#xff0c;会导…

lua 的语法糖

tb {} function tb:fun1()self ---tb endfunction tb.fun2()self ---->无 endtb:fun1()tb.fun2()------self 相当于 this lua函有 tb.fun2() 这样的定义 没有this(self) tolua 加了对象定义 转载于:https://www.cnblogs.com/mattins/p/3967018.html

vue设置页面标题title

每个页面设置相同标题 index.html 直接修改title标签里面的标题 (ps: 这个html文件中也可以引入一些js文件) 每个页面设置不同标题 router - index.js const router new Router({mode: history,routes: [{path: /index,name: index,component: Index,meta:{// 页面标题ti…

CSS之background-size属性

语法&#xff1a;background-size: auto || <length> || <percentage> || cover || contain 取值说明&#xff1a; 1.auto:此值为默认值&#xff0c;保持背景图片的原始高度和宽度 2.<length>此值设置具体的值&#xff0c;可以改变背景图片的大小 3.<…

魔界的青蔷薇也能在人间开放了

under the moon和いじわる my master里面提到过&#xff0c;青蔷薇是一种只能在魔界盛开的花&#xff0c;花语是&#xff1a;不可能。青蔷薇姬的故事是&#xff1a;我不要你的珠宝&#xff0c;只要你的真心。[separator][quote]11月1日闭幕的东京国际花卉博览会上&#xff0c;全…

javascript学习系列(19):数组中的Array.from方法

最好的种树是十年前,其次是现在。歌谣 每天一个前端小知识 提醒你改好好学习了 知乎博主 csdn博主 b站博主 放弃很容易但是坚持一定很酷 我是歌谣 喜欢就一键三连咯 你得点赞是对歌谣最大的鼓励 1前言 在我们的日常开发中 不免会有很多需要处理数据的方法 本节主要说一说…