博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Android]使用ActivityGroup来切换Activity和Layout
阅读量:6307 次
发布时间:2019-06-22

本文共 3797 字,大约阅读时间需要 12 分钟。

一、效果图

     

    要求点击底部不同图片按钮切换不同的Activity,并在中间显示Activity对应的ContentView。

二、 实现代码

    2.1  layout.xml

<?
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/myinfor2"
 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"
>
        
<!--
 功能模块按钮1 
-->
        
<
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"
 
/>
        
<!--
 功能模块按钮2 
-->
        
<
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"
 
/>
        
<!--
 功能模块按钮3 
-->
        
<
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
>

    2.2  TestView.java

/**
 * 使用ActivityGroup来切换Activity和Layout
 * 
@author
 农民伯伯
 * 
@version
 2010-9-7
 * 
 
*/
public
 
class
 TestView 
extends
 ActivityGroup {
    
private
 ScrollView container 
=
 
null
;
    @Override
    
protected
 
void
 onCreate(Bundle savedInstanceState) {
        
super
.onCreate(savedInstanceState);
        
//
 隐藏标题栏
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        
//
 设置视图
        setContentView(R.layout.layout);
        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(TestView.
this
, ModuleView1.
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(TestView.
this
, ModuleView2.
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(TestView.
this
, ModuleView3.
class
)
                                .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
                        .getDecorView());
            }
        });
    }
}

    代码说明:

      a).  ModuleView1、ModuleView2 ModuleView3分别继承自Activity。

      b).  想动态改变标题可以通过cust_title获取TextView进行设置。

本文转自博客园农民伯伯的博客,原文链接:,如需转载请自行联系原博主。

你可能感兴趣的文章
row_number()over函数的使用
查看>>
viewPort(浏览器窗口的整个显示区域)
查看>>
如何用树莓派打造一个家庭影院
查看>>
部署 elk 日志系统 elasticsearch、logstash、 kibana
查看>>
ORA-6550;6510
查看>>
dump备份命令
查看>>
使用FastDFS搭建图片服务器单实例篇
查看>>
ip路由选择
查看>>
Model-View-ViewModel for iOS
查看>>
16.Centos7文件类型
查看>>
用得上的网络命令
查看>>
LAMP平台编译安装
查看>>
php 压缩zip
查看>>
tar增量备份
查看>>
PHP系列(五)PHP字符串处理
查看>>
EXAM-1试题及答案详解
查看>>
NFS介绍、NFS服务端安装配置、NFS配置选项介绍
查看>>
rsyslog+loganalyzer 非常强大的日志系统
查看>>
SQL Server2008附加数据库之后显示为只读时解决方法
查看>>
Crontab在CentOS下的使用简介
查看>>