activity嵌套activity

来源:互联网 发布:模拟城市 mac 破解版 编辑:程序博客网 时间:2024/06/05 17:57


LocalActivityManager类用来管理activity,通过startActivity(string Tag,Intent intent)方法获取当前windows对象在调用getDecorView()方法获取当前Activity对应的VIew,在添加的时候会遇到下面的问题

Causedby: java.lang.IllegalStateException:Activities can't be added until the containing group has been created.

解决办法:

LocalActivityManager mLocalActivityManager;oncreate()方法实例化mLocalActivityManager = new LocalActivityManager((Activity) context, true);

2、在oncreate,onresume,onpause方法中分别加入如下代码:

oncreate()--------------mLocalActivityManager.dispatchCreate(arg0);参数arg0oncreate方法的形参

onpause()--------------mLocalActivityManager.dispatchPause(isFinishing());传入true

onresume()--------------mLocalActivityManager.dispatchResume();

LocalActivityManager的使用方法

我是自己封装了一个方法LocalActivityManager的使用方法我是自己封装了一个方法

<pre name="code" class="java"><span style="font-size:18px;">localActivityManager在oncreate中创建localActivityManager = new LocalActivityManager(MainActivity.this, true);</span>
private void setActivity(Class<?> activity){
        Intent intent = new Intent(MainActivity.this,
                activity);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        @SuppressWarnings("deprecation")
        View v = localActivityManager.startActivity("one",  
                intent).getDecorView();
        layout_fram.removeAllViews();
        layout_fram.addView(v);
    }

在需要的位置调用此方法 其中参数 是activity.class
layout_fram是xml文件中的布局见下文
  <FrameLayout
            android:id="@+id/group_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1" >
        </FrameLayout>
 


0 0
原创粉丝点击