[英]Close SlidingDrawer when user engages outside of SlidingDrawer
[英]Invoking activity when SlidingDrawer is dragged
我需要制作一個包含GridView
和SlidingDrawer
的activity
的應用程序。
我已經做到了,但是現在我的問題是,每當拖動SlidingDrawer
時,我就需要在屏幕的一半上帶一個活動,另一半是我以前的activity
而當我向后拖動SlidingDrawer
,應該關閉該Activity
。
是否可以在沒有任何沖突的情況下處理屏幕中的兩個活動,並且如果可能,我應該如何設計這些活動?
您不能將Activity
放在SlidingDrawer
。 您可以將View
放在SlidingDrawer
。
SlidingDrawer
的所有者Activity
應該擴展ActivityGroup
。 獲取目標活動的視圖,將視圖添加到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; }
注意: 永遠不要 startActivity(pkg, YourTargetActivity)
! 這樣用戶就永遠不會作為獨立的Activity
進入YourTargetActivity。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.