activity 嵌套 activity

简介: 网页里面能够嵌套网页,那Android的Activity能不能嵌套呢?答案是肯定。Android给我们提供了ActivityGroup和TabActivity,当我们至需要嵌套一个Activity或者不方便继承ActivityGroupF的时候,我们可以参考ActivityGroup的实现,比较关键的是LocalActivityManager。

网页里面能够嵌套网页,那Android的Activity能不能嵌套呢?答案是肯定。Android给我们提供了ActivityGroup和TabActivity,当我们至需要嵌套一个Activity或者不方便继承ActivityGroupF的时候,我们可以参考ActivityGroup的实现,比较关键的是LocalActivityManager。

最外层Activity


    public class ViewActivity extends Activity{  
         protected LocalActivityManager mLocalActivityManager;  
         private FrameLayout mBoday;  
           
         @Override  
         protected void onCreate(Bundle savedInstanceState) {  
             super.onCreate(savedInstanceState);  
               
             setContentView(R.layout.base_layout);  
               
             mLocalActivityManager = new LocalActivityManager(this, true);  
               
             Bundle states = savedInstanceState != null? (Bundle) savedInstanceState.getBundle(STATES_KEY) : null;  
             mLocalActivityManager.dispatchCreate(states);  
               
               
             Intent intent = new Intent();  
             intent.setAction("android.settings.SETTINGS");  
             intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
             View v = mLocalActivityManager.startActivity("one", intent).getDecorView();  
             mBoday.removeAllViews();  
             mBoday.addView(v);  
         }  
           
     }  

LocalActivityManager.startActivity()需要传入里程Activity信息,就跟Activity.startActivity()打开新的Activity的Intent参数一样,不同的是LocalActivityManager.startActivity()把传入的Activity信息作为嵌套Activity打开。


    <?xml version="1.0" encoding="utf-8"?>  
     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
         android:layout_width="fill_parent"  
         android:layout_height="fill_parent"  
         android:orientation="vertical" >  
       
         <FrameLayout  
     android:id="@+id/frame"  
             android:layout_width="fill_parent"  
             android:layout_height="fill_parent">  
         </FrameLayout>  
       
     </LinearLayout>  

外层Activity布局文件可以随意布置,但记得包涵里层Activty的布局标签,就像View是不能正常打开的里层Activity的。

外层Activity布局文件除了FrameLayout还可以使用LinearLayout作为显示里层Activity的视图。

但是里层Activity如果是ListActivity或者关于List相关属性的都不能正常显示。

目前猜测是因为ListActivity一类没有更新显示。


目录
相关文章
|
6月前
|
XML 监控 Android开发
Activity详解2
Activity详解
87 1
|
6月前
|
存储
Activity详解1
Activity详解
64 0
|
6月前
activity中加载fragment的控件 在fragment 中调用activity中的控件
activity中加载fragment的控件 在fragment 中调用activity中的控件
47 0
|
6月前
|
前端开发 Java Android开发
Activity
Activity
114 0
|
传感器 存储 定位技术
Activity初学乍练
Activity是一个应用程序的组件,他在屏幕上提供了一个区域,允许用户在上面做一些交互性的操作,比如打电话,照相,发送邮件,或者显示一个地图!Activity可以理解成一个绘制用户界面的窗口,而这个窗口可以填满整个屏幕,也可能比屏幕小或者浮动在其他窗口的上方!
|
Java 调度 Android开发
Activity登堂入室
Activity调用startActivity后最后会调用attach方法,然后在PolicyManager实现一个Ipolicy接口,接着实现一个Policy对象,接着调用makenewwindow(Context)方法,该方法会返回一个PhoneWindow对象,而PhoneWindow是Window的子类,在这个PhoneWindow中有一个DecorView的内部类,是所有应用窗口的根View,即View的老大,直接控制Activity是否显示(引用老司机原话..),好吧,接着里面有一个LinearLayout,里面又有两个FrameLayout他们分别拿来装ActionBar和Cus
100 0
|
XML Java Android开发
第二讲 Activity详解
第二讲 Activity详解
200 0
第二讲 Activity详解
|
Kotlin
我们真的了解 Activity 与 Fragment 的生命周期吗?
      小菜中午和朋友闲聊,被问到 Activity 与 Fragment 的生命周期,以为是很基础的东西,基本可以把生命周期说全,但是被问到 Activity 与 Fragment 交互的生命周期运行顺序,切换 Fragment 时候的生命周期顺序,以及切换完之后退出时的生命周期...瞬间感觉基础知识太不扎实了。
1070 0