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。

  • 相关阅读:
    数据库中的大数据字段和二进制大数据字段(图片)
    mysql中的存储过程和事务隔离
    关于数据库的三个范式的详解
    mysql与java的之间的连接
    mysql中的第三范式
    如何设置ssh安全只允许用户从指定的IP登陆
    MySQL 出现 The table is full 的解决方法
    ssh "openssh-daemon is stopped"操作之伤+sftp访问“-bash: /dev/null: Permission denied”
    CentOS 6 用SVN自动提交文件到web服务器
    centos下pg_dump的服务器版本不匹配问题
  • 原文地址:https://www.cnblogs.com/bianmajiang/p/3964579.html
Copyright © 2011-2022 走看看