【发布时间】:2015-02-26 01:54:56
【问题描述】:
我希望我的 ViewPager 具有与 Material Design 主题 Button 相同的 Material Design 动画,当您按下它时,您会看到海拔变化,并且按钮下方会出现阴影。效果在材料响应视频下的材料设计指南中显示在这里:http://www.google.com/design/spec/animation/responsive-interaction.html#responsive-interaction-user-input。
我相信对于 Button/ImageView,这是通过 StateListAnimator 完成的,但我无法找到对 ViewPager 执行相同操作的方法,因为 ViewPager 似乎没有按钮所具有的状态。
我尝试在自定义 ViewPager 上使用 onInterceptTouch 和 onTouch 来监听何时按下和释放 ViewPager,但根据我的实验,并非所有 MotionEvents 都会发送到 ViewPager。
我也尝试使用 PageTransformer,但效果有限。
有人知道怎么做吗?
【问题讨论】:
-
如何让您的 ViewPager 项目按钮,然后让它们可点击,这样 StateListAnimator 现在将应用于您的项目?
-
按钮不是 ViewGroup,因此它们不能包含任何内容。
-
你可以把它放在 FrameLayout 或 RelativeLayout 中,对吧?只要点击事件到达Button,我的猜测是效果会应用到它。
-
ViewPagers 并不是真的打算这样做,但我可以想到一些方法来实现这一点,但我不推荐它。我假设您有一个可以滚动的水平项目列表,一次只能查看一个,但您还想选择/单击这些项目并在单击时执行一些操作?如果这些项目不仅仅是愚蠢的内容,那么ViewPager可能是要走的路。否则,如果用户只是在一个简单的可选项目列表中滚动,那么你最好使用水平的RecyclerView和可能的自定义LayoutManager。
标签: android android-viewpager android-animation material-design