如何在点击按钮时实现视图从右向左滑动的效果
右侧滑入视图实现方案
效果参考:
- 点击箭头按钮前的界面:

- 点击按钮后视图从屏幕右端向左滑入效果:

针对已废弃的SliderDrawer组件,现有3种成熟实现方案可选:
方案1:官方DrawerLayout组件(最推荐)
这是Google官方主推的侧滑菜单实现方案,原生动画效果和MxPlayer的滑动菜单完全匹配:
- 布局根节点使用
androidx.drawerlayout.widget.DrawerLayout,将需要滑入的菜单视图作为子View添加,给菜单视图设置android:layout_gravity="end"属性,即可指定该菜单从右侧滑出 - 点击向左箭头按钮时,调用
drawerLayout.openDrawer(GravityCompat.END)即可触发滑入动画,关闭时调用drawerLayout.closeDrawer(GravityCompat.END)即可 - 支持自定义滑动时长、边缘阴影、手势滑动呼出等特性,适配全Android版本
方案2:属性动画轻量实现
如果只需要单个视图的滑入效果,不需要完整抽屉交互逻辑,可以直接用属性动画实现:
// 初始化时把视图移到屏幕右侧外 slideView.translationX = resources.displayMetrics.widthPixels.toFloat() // 点击按钮时触发滑入动画 slideView.animate() .translationX(0f) .setDuration(300) .setInterpolator(DecelerateInterpolator()) .start()
方案3:MotionLayout实现复杂联动动画
如果需要实现滑动时和其他视图的联动效果(比如背景渐变、按钮同步位移等),可以使用MotionLayout,在MotionScene配置文件中定义视图从右到左的位移规则,点击按钮触发对应Transition即可实现高度自定义的动画效果。
内容的提问来源于stack exchange,提问作者ShaRy
相关产品推荐
相关产品推荐

