activity嵌套activity


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

Caused by: 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值