zoukankan      html  css  js  c++  java
  • (转载)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。

  • 相关阅读:
    SqlServer Function 实例
    技术清单
    SQLSERVER 链接服务器执行存储过程
    SQLSERVER 链接服务器
    Oracle 新手语法记录
    MarkDown 语法备份
    C# WebAPI小记
    Rabbit MQ 学习 (二)
    Rabbit MQ 学习 (一)Window安装Erlang环境
    [vue2,nodejs,echarts,json]调查问卷
  • 原文地址:https://www.cnblogs.com/bianmajiang/p/3964579.html
Copyright © 2011-2022 走看看