0

我需要制作一个activity由 aGridView和组成的应用程序SlidingDrawer

我已经这样做了,但是现在我的问题是,每当拖动屏幕时,我需要为屏幕的一半带来一个活动,SlidingDrawer而另一半将是我以前activity的,当我向后拖动时SlidingDrawerActivity应该关闭。

这是否可以在没有任何冲突的情况下处理屏幕中的两个活动,如果可能,我应该如何设计这些活动?

4

2 回答 2

1

您不能将Activitya放入SlidingDrawer. 您可以将 aView放入SlidingDrawer.

于 2011-03-31T13:21:03.567 回答
0
  1. Activity您的所有者SlidingDrawer应该扩展ActivityGroup
  2. 获取目标活动的视图,将视图添加到SlidingDrawer的内容。代码如下:

    private void initSlidingDrawerContent() {
        mTestContent.removeAllViews();
        //View view = LayoutInflater.from(this).inflate(R.layout.act_test, null);
        View view = activityToView(this, new Intent(MainActivity.this, TestActivity.class));
        mTestContent.addView(view); 
    }
    
    private View activityToView(ActivityGroup parent, Intent intent) {
        LocalActivityManager mLocalActivityManager = parent.getLocalActivityManager();
        final Window w = mLocalActivityManager.startActivity("TagName", intent);
        final View wd = w != null ? w.getDecorView() : null;
        if (wd != null) {
            wd.setVisibility(View.VISIBLE);
            wd.setFocusableInTouchMode(true);
            ((ViewGroup) wd)
                    .setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS);
        }
        return wd;
    }
    
  3. 注意:从不 startActivity(pkg, YourTargetActivity)!这样用户就永远不会将 YourTargetActivity 作为独立的Activity.

于 2012-03-31T03:41:13.870 回答