带有动画效果的滑动,大家都知道,应该使用WorkspaceView,而WorkspaceView必须使用View才能进行滑动。
那么多个Activity该如何做滑动效果呢?
其实方法很简单,就是把Activity转换为View,下面就是Activity转换为View的代码:
private View activityToView(Activity parent, Class<?> target, Bundle state) {
LocalActivityManager mLocalActivityManager = new LocalActivityManager(
parent, true);//new一个本地的activity管理器
mLocalActivityManager.dispatchCreate(state);//这个state就是当前Activity的状态参数,就是onCreate(Bundle savedInstanceState)里面这个savedInstanceState
mLocalActivityManager.dispatchResume();
mLocalActivityManager.dispatchDestroy(true);
Intent intent = new Intent(parent, target);
final Window w = mLocalActivityManager.startActivity(target.getName(),
intent);//取得一个window对象,以方便转换为View
final View wd = w != null ? w.getDecorView() : null;//转换为view
if (wd != null) {
wd.setVisibility(View.VISIBLE);
wd.setClickable(true);
wd.setFocusable(true);
wd.setFocusableInTouchMode(true);
((ViewGroup) wd)
.setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS);
}
return wd;
}
然后定义一个WorkspaceView把所有的activity转换为View加载进去:
work = new WorkspaceView(this, null) {
@Override
public boolean onTouchEvent(MotionEvent ev) {
super.onTouchEvent(ev);
switch (ev.getAction()) {
case MotionEvent.ACTION_MOVE:
//处理移动事件
break;
case MotionEvent.ACTION_UP:
//处理action_up事件
break;
}
return true;
}
};
work.setTouchSlop(16);//设置滑动距离
// work.setBackgroundColor(getResources().getColor(R.color.main_contain_bgcolor));
//调用activityToView方法,加载所有的activity
work.addView(activityToView(this, SmartdialerActivity.class,
savedInstanceState));
work.addView(activityToView(this, MainActivity.class,
savedInstanceState));
work.addView(smsGroupView);
work.addView(activityToView(this, AutoReplyActivity.class,
savedInstanceState));
ps:重要的我用红色字体标示了
分享到:
相关推荐
在Android开发中,实现...总之,Android提供多种方式实现多Activity滑动效果,开发者可以根据项目需求选择合适的方法。通过熟练掌握`Fragment`、`ViewPager`以及共享元素过渡等技术,可以构建出更具吸引力的用户界面。
在Android开发中,实现多个Activity之间的滑动切换是一种常见的用户界面交互设计,它可以提供更加流畅且直观的用户体验。本文将详细讲解如何通过点击按钮来实现这种从右侧进入、左侧退出的滑动切换效果。 首先,...
以上就是关于“一个Activity中多个ListView的整体滑动”的详细说明,希望对你理解Android中ListView的使用和滑动效果的实现有所帮助。在实际开发中,灵活运用这些技术,可以创建出更加丰富和用户友好的界面。
通过以上步骤和注意事项,你将能够成功地在Android应用中实现底部菜单栏与ViewPager的结合,达到左右滑动切换多个Activity或Fragment的效果。这种设计模式在许多应用中都得到了广泛应用,提高了用户体验和交互性。
总之,实现Android向右滑动切换Activity的效果涉及多个Android组件和技术,包括`ViewPager`、`Fragment`、手势识别、动画和第三方库。通过理解和应用这些知识,你可以为用户创造一个流畅、直观的交互体验。
在Android中,布局通常由多个View和ViewGroup组成,而Activity则包含一个顶级的DecorView。为了实现滑动退出,我们可以在Activity的根布局上添加一个全屏的透明View(例如使用`FrameLayout`或`RelativeLayout`),这...
当用户启动一个应用时,系统会创建一个或多个Activity实例。滑动关闭Activity,即通过在屏幕上向左或向右滑动来结束当前的Activity。 要实现滑动关闭功能,我们通常需要自定义ViewGroup,例如使用FrameLayout或...
对于复杂的、包含多个页面的滑动效果,我们需要使用`ViewPager`。`ViewPager`是Android支持库中的一个控件,它允许用户左右或上下滑动来浏览多个页面,非常适合创建翻页效果。 要创建一个纵向滑动的页面,我们需要...
本话题主要关注如何通过手势识别来实现类似Zaker应用中的Activity滑动切换。下面我们将深入探讨这个过程。 首先,我们需要了解手势识别在Android中的基础。Android提供了`GestureDetector`类,它可以帮助我们检测...
在“viewpager中嵌套多个activity”的场景下,开发者可能会遇到一些挑战,比如如何有效地管理多个Activity之间的数据加载和通信。在这个主题中,我们将深入探讨如何在ViewPager中实现对多个Activity的嵌套,并进行...
在一个Activity中,可以有多个Fragment,用户可以通过滑动在这些Fragment之间切换。 3. **PageTransformer**:ViewPager提供了一个接口`PageTransformer`,允许开发者自定义页面滑动时的动画效果,例如深度效果、...
在Android开发中,实现图片左右滑动效果是常见的需求,比如在查看相册或轮播图时。这个功能可以通过多种方式实现,其中最常用的是使用ViewPager组件。ViewPager允许用户通过左右滑动手势在多个页面之间切换,非常...
在Android平台上,实现类似桌面多页面滑动效果的技术主要涉及到几个关键知识点,包括视图滚动、页面滑动切换、Adapter和ViewPager等。下面将详细解释这些概念及其在实际开发中的应用。 1. 视图滚动(View Scrolling...
在Android开发中,手势识别和Activity的切换是两个重要的概念,尤其在构建用户友好、交互性强的移动应用时。本文将深入探讨如何实现"Android手势滑动切换Activity"这一功能,帮助开发者提升应用的用户体验。 首先,...
以上就是实现Android九宫格模式切换多个Activity的基本步骤。通过自定义Adapter和点击事件,我们可以轻松地为每个按钮绑定不同的Activity,同时通过调整布局和动画,可以进一步优化用户体验。在实际开发中,还可以...
它允许开发者在同一个Activity中展示多个UI片段,增强了应用的灵活性。本篇文章将深入探讨如何在Activity中嵌套Fragment,以及如何利用TabLayout和ViewPager来实现多Fragment的滑动效果。 首先,我们来了解Activity...
1. **ViewPager**: ViewPager是Android SDK中的一个控件,它允许用户通过左右滑动来浏览多个页面。每个页面都是一个单独的Fragment或Activity,这样可以创建一个流畅的滑动体验。在“InterfacialSlidingDemo”中,...
实现这一功能涉及到Android的触摸事件处理、视图层级管理和动画控制等多个方面的知识。 首先,了解Android的触摸事件处理机制是必要的。Android通过MotionEvent对象传递触摸事件,包括ACTION_DOWN、ACTION_MOVE、...
首先,Android界面的左右滑动切换通常是通过`ViewPager`组件实现的,它允许用户通过横向滑动来浏览多个页面。如果我们想要禁止这种行为,我们需要对`ViewPager`进行定制。以下是一种可能的方法: 1. **自定义...
在Android开发中,滑动关闭Activity是一种常见的交互方式,它为用户提供了一种直观且便捷的操作体验,使得用户可以通过简单的手势来结束一个Activity。本压缩包包含的资源是关于实现这一功能的源码示例,主要涉及到`...