我需要使用由activity
和GridView
组成的SlidingDrawer
制作应用。
我已经这样做了,但现在我的问题是,每当拖动SlidingDrawer
而另一半将是我之前的activity
时,我需要为屏幕的一半带来一个活动拖回SlidingDrawer
,然后应关闭Activity
。
这是否可以在没有任何冲突的情况下处理屏幕中的活动,如果可能,我应该如何设计这些活动?
答案 0 :(得分:1)
您无法将Activity
放入SlidingDrawer
。您可以将View
放入SlidingDrawer
。
答案 1 :(得分:0)
Activity
的所有者SlidingDrawer
应该延伸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)
!因此,用户永远不会将YourTargetActivity作为独立的Activity
转发。