2011-03-31 40 views
0

我需要使用activity创建应用程序,其中包含GridViewSlidingDrawer拖动SlidingDrawer时调用活动

我已经做到了,但现在我的问题是,我需要把一个活动画面的一半每当SlidingDrawer拖动,而另一半将是我以前的activity,当我拖回来SlidingDrawer那么Activity应该关闭。

这是可能的处理这两个屏幕上的活动没有任何冲突,如果可能我应该如何设计这些活动?

回答

1

您不能在SlidingDrawer中输入Activity。您可以在SlidingDrawer中输入View

+0

人无我有,每当我拖动'drawer'来调用'activity' ..双方应在同一时间内可见.. – Hussain 2011-04-01 06:09:23

+0

@Hussain:我再说一遍,你不能把一个'Activity'在' SlidingDrawer'。 – CommonsWare 2011-04-01 10:54:37

+0

我不想把'Activity'放在'SlidingDrawer'里面..当拖动'SlidingDrawer'时我需要调用一个半页'activity'。 – Hussain 2011-04-01 11:11:56

0
  1. 您的SlidingDrawer的所有者Activity应扩展为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. 注:NEVERstartActivity(pkg, YourTargetActivity)!这样用户永远不会以独立的Activity的身份前往YourTargetActivity。