Вызов активности при перетаскивании SlidingDrawer - PullRequest
0 голосов
/ 31 марта 2011

Мне нужно подать заявку с activity, состоящим из GridView и SlidingDrawer.

Я сделал это, но теперь моя проблема в том, что мне нужно довести действие на половинуэкрана всякий раз, когда перетаскивается SlidingDrawer, а другая половина будет моим предыдущим activity, а когда я перетаскиваю назад SlidingDrawer, Activity должен быть закрыт.

Возможно ли это обработатьоба действия на экране без каких-либо конфликтов и, если возможно, как мне спроектировать эти действия?

Ответы [ 2 ]

1 голос
/ 31 марта 2011

Вы не можете поместить Activity в SlidingDrawer.Вы можете поставить View в SlidingDrawer.

0 голосов
/ 31 марта 2012
  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.

...