Android的ActivityGroup与Fragment

ActivityGroup

/**
 * 供开发者在实现类中调用,能将Activity容器内的Activity移除,再将指定的某个Activity加入
 *
 * @param activityName     加载的Activity在localActivityManager中的名字
 * @param activityClassTye 要加载Activity的类型
 */
protected void setContainerView(String activityName, Class<?> activityClassTye) {
    if (null == localActivityManager) {
        localActivityManager = getLocalActivityManager();
    }

    if (null == container) {
        container = getContainer();
    }

    //移除内容部分全部的View
    container.removeAllViews();


    if(activityName.equals(Constants.CONTENT_ACTIVITY_THEME_LIST)) {
        ThemeListActivity contentActivity = (ThemeListActivity) localActivityManager.getActivity(activityName);
        if (null == contentActivity) {
            localActivityManager.startActivity(activityName, initIntent(activityClassTye));
        } else {
            contentActivity.updateViewData();//更新Activity数据
        }
    }


    //加载Activity
    container.addView(localActivityManager.getActivity(activityName).getWindow().getDecorView(),
            new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
}
 

Activity

public void updateViewData() {
    if (currentView == currentViewRecommend) {
        initRecommendTab();
    }
}

private void initRecommendTab() {
    recommendTab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            FragmentTransaction ft = fragmentManager.beginTransaction();
            hideFragments(ft);


            if (recommendThemeFragment == null) {
                recommendThemeFragment = new RecommendThemeFragment();
                ft.add(R.id.theme_list_content, recommendThemeFragment, TAG);
            } else {
                ft.show(recommendThemeFragment);
            }


            ft.commitAllowingStateLoss();

        }
    });

    /**
     * 默认第一个按钮点击
     */
    if (ThemeListActivity.this != null && !isFinishing()) {
        recommendTab.performClick();
    }

}

//make sure fragment go thru definitely both hide and show process
private void hideFragments(FragmentTransaction transaction) {
    if (recommendThemeFragment != null) {
        transaction.hide(recommendThemeFragment);
    }

}

Fragment

@Override
public void onHiddenChanged(boolean hidden) {
    super.onHiddenChanged(hidden);
    if (hidden) {// 不在最前端界面显示

    } else {// 重新显示到最前端
        if ( mActivity != null &&!mActivity.isFinishing() && isAdded()) {
            getRecommendFrontList(Constants.UPDATE_DATA);
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值