2011-03-31 1 views
0

GridViewSlidingDrawer으로 구성된 activity으로 애플리케이션을 만들어야합니다.SlidingDrawer를 끌 때 활동 호출

나는 그 일을했다,하지만 지금은 내 문제는 SlidingDrawer 드래그하고 나머지 절반은 될 것입니다 때마다 내가 화면의 절반 활동을 가져올 필요가있다 내 이전 activity 내가 다음 SlidingDrawer을 다시 끌어 Activity 닫아야합니다.

충돌없이 화면에서 두 가지 활동을 모두 처리 할 수 ​​있습니까? 가능하다면 어떻게 설계해야합니까?

답변

1

SlidingDrawerActivity을 넣을 수 없습니다. SlidingDrawerView을 넣을 수 있습니다. 당신의 SlidingDrawer

+0

없는 나는 내가'drawer'를 드래그 할 때마다'activity'를 호출 할 필요가 없음 .. 모두 한 번에 볼 수 있어야합니다 .. – Hussain

+0

@Hussain이 : 나는 반복, 당신이에'Activity'를 넣을 수없는' SlidingDrawer'. – CommonsWare

+0

'SlidingDrawer' 안에'Activity'를 넣고 싶지 않습니다 ..'SlidingDrawer'를 드래그하면 반쪽 페이지'activity'를 호출해야합니다 .. – Hussain

0
  1. 소유자 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)! 따라서 사용자는 YourTargetActivity를 독립 실행 형 Activity으로 사용하지 않습니다.