`

ActivityGroup代替TabHost

阅读更多

package cn.fn;

import android.app.ActivityGroup;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.ScrollView;

public class GroupActivity extends ActivityGroup {

    private ScrollView container = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 隐藏标题栏
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        // 设置视图
        setContentView(R.layout.main);

        container = (ScrollView) findViewById(R.id.containerBody);

        // 模块1
        ImageView btnModule1 = (ImageView) findViewById(R.id.btnModule1);
        btnModule1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                container.removeAllViews();
                container.addView(getLocalActivityManager().startActivity(
                        "Module1",
                        new Intent(GroupActivity.this, Test1.class)
                                .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
                        .getDecorView());
            }
        });

        // 模块2
        ImageView btnModule2 = (ImageView) findViewById(R.id.btnModule2);
        btnModule2.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                container.removeAllViews();
                container.addView(getLocalActivityManager().startActivity(
                        "Module2",
                        new Intent(GroupActivity.this, Test1.class)
                                .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
                        .getDecorView());
            }
        });

        // 模块3
        ImageView btnModule3 = (ImageView) findViewById(R.id.btnModule3);
        btnModule3.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                container.removeAllViews();
                container.addView(getLocalActivityManager().startActivity(
                        "Module3",
                        new Intent(GroupActivity.this, Test1.class)
                                .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
                        .getDecorView());
            }
        });
    }
}




package cn.fn;

import android.app.Activity;
import android.os.Bundle;

public class Test1 extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout);
    }
}



<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:orientation="vertical"
    android:layout_height="fill_parent">
    <LinearLayout android:gravity="center_horizontal"
        android:background="@drawable/icon" android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <TextView android:id="@+id/cust_title" android:textColor="@android:color/white"
            android:textSize="28sp" android:text="模块1" android:layout_width="wrap_content"
            android:layout_height="wrap_content"></TextView>
    </LinearLayout>
    <!-- 中间动态加载View -->
    <ScrollView android:measureAllChildren="true" android:id="@+id/containerBody"
        android:layout_weight="1" android:layout_height="fill_parent"
        android:layout_width="fill_parent">
    </ScrollView>
    <LinearLayout android:background="@android:color/black"
        android:layout_gravity="bottom" android:orientation="horizontal"
        android:layout_width="fill_parent" android:layout_height="wrap_content">
        <ImageView android:id="@+id/btnModule1" android:src="@android:drawable/ic_dialog_dialer"
            android:layout_marginLeft="7dp" android:layout_marginTop="3dp"
            android:layout_marginBottom="3dp" android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        <ImageView android:id="@+id/btnModule2" android:src="@android:drawable/ic_dialog_info"
            android:layout_marginLeft="7dp" android:layout_marginTop="3dp"
            android:layout_marginBottom="3dp" android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        <ImageView android:id="@+id/btnModule3" android:src="@android:drawable/ic_dialog_alert"
            android:layout_marginLeft="7dp" android:layout_marginTop="3dp"
            android:layout_marginBottom="3dp" android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </LinearLayout>
</LinearLayout>






分享到:
评论

相关推荐

    ActivityGroup 代替TabActivity的用法

    ActivityGroup 代替 TabActivity 的用法 Android 开发中,TabActivity 已经被废除,而使用 ActivityGroup 来代替 TabActivity,可以更加自由灵活,少很多限制和依赖。ActivityGroup 是 Google 提供的一个非常优秀的...

    用Fragment来代替过期的Tabhost和ActivityGroup

    在Android应用开发中,随着平台的发展,一些早期的技术逐渐被淘汰,比如Tabhost和ActivityGroup,它们曾经是实现界面切换和管理的常用方式。然而,随着Android SDK的更新,Fragment成为了更现代、更灵活的组件,可以...

    小程序源码 辅助类库 TabHost内嵌ActivityGroup界面管理源码.rar

    不过需要注意的是,在后来的Android版本中,Google推荐使用Fragment和FragmentTabHost来代替ActivityGroup,因为Fragment提供了更好的生命周期管理和回退栈支持。尽管如此,对于理解Android历史上的界面管理机制,这...

    Android TabHost内嵌ActivityGroup界面管理源码.zip

    这个压缩包"Android TabHost内嵌ActivityGroup界面管理源码.zip"提供了具体的实现示例,帮助开发者理解这种复杂的界面管理机制。 TabHost的工作原理是通过一个名为TabWidget的组件显示标签,而另一个名为...

    ActivityGroupDemo实现Tabhost

    但要注意,随着Android版本的更新,`ActivityGroup`在新的API级别中已经被弃用,建议使用`Fragment`和`FragmentTabHost`来代替。尽管如此,理解`ActivityGroup`对于理解`Fragment`的工作原理仍然很有帮助,特别是...

    activitygroup

    这个概念通常用于实现类似TabHost或者多级导航的效果,使得用户可以在一个单一的栈结构中进行多个界面间的交互。`ActivityGroup`在早期的Android版本中被用来解决在同一个栈内管理多个`Activity`的需求,但在Android...

    ActivityGroup(含listview不冲突)

    ActivityGroup的使用可以帮助开发者实现类似TabHost或者Fragment的效果,但它是Android早期版本(API Level 8及以下)的一种解决方案。 在标题和描述中提到的“ActivityGroup(含listview不冲突)”可能是指在...

    ActivityGroupDemo

    因此,随着Android SDK的发展,Google推荐使用Fragment来代替ActivityGroup。 Fragment是Android 3.0(API Level 11)引入的,它提供了一种在单个Activity中管理多个UI片段的方法,解决了ActivityGroup的一些痛点。...

    fragment tabhost 精美底部导航栏源代码

    在这个项目中,Fragment被用来代替已经过时的`ActivityGroup`和`TabActivity`,这使得代码更加现代化,遵循了最新的Android开发最佳实践。 `TabHost`是一个容器,用于组织多个`TabWidget`(标签)和一个`...

    ActivityGroup + GridView + ViewFlipper 实现选项卡.zip

    首先,`ActivityGroup`是Android早期版本中的一个类,它允许在一个`TabHost`或`FrameLayout`内嵌套多个Activity,从而实现选项卡内部的页面切换。然而,自Android 3.0(API级别11)开始,`ActivityGroup`已被废弃,...

    android 基本框架

    在新的Android版本中,通常使用Fragments来代替ActivityGroup,因为Fragments提供了更好的复用性和灵活性。 2. **Service**:Service是在后台运行,不与用户界面直接交互的组件。它可以长时间执行任务,比如播放...

    多个button互相切换view<实例一>

    `ActivityGroup`是早期Android版本中用于在TabHost或者多窗口切换场景下管理子Activity的一种方式,虽然在最新的Android版本中已经被 Fragments 替代,但理解其工作原理仍然有助于我们理解Android的历史演进和当前的...

    android Group实例代码下载

    这个"ActivityGroup"可能是为了实现类似TabHost或者Navigation Drawer的效果,使得在切换不同界面时,不需要频繁地创建和销毁Activity,提高性能和用户体验。现在这种做法已经过时,被Fragment和FragmentTransaction...

    多个button互相切换view<实例二3D切换>

    在早期的Android版本中,ActivityGroup被用来管理在一个单独的栈中的多个Activity,从而实现类似TabHost的效果。然而,从Android 3.0(API级别11)开始,ActivityGroup已被废弃,推荐使用Fragment和...

    Fragment的三个例子

    1. **Fragment代替ActivityGroup** 在Android早期,开发者常使用ActivityGroup来实现类似Fragment的效果,即在一个Activity中嵌套多个子Activity。然而,这种方式存在许多问题,如内存泄漏、生命周期管理复杂以及...

    Android ActivtiyGroup和ViewFlipper实现Activity滑屏切换

    `ActivityGroup`是Android早期API(在API 13被弃用)中的一个类,它允许我们在一个单独的`TabHost`或`Activity`中嵌套多个`Activity`。`ActivityGroup`的主要目的是在一个父`Activity`中管理和展示多个子`Activity`...

    Android应用经典主界面框架之一:仿QQ

    早期这种架构一直是使用tabhost+activitygroup来使用,随着fragment的出现及google官方也大力推荐使用fragment,后者大有代替前者之势。本文也使用fragment进行搭建,标题中的“经典”指这种交互经典,非本文的代码...

Global site tag (gtag.js) - Google Analytics