我希望我的ViewPager具有与材质设计主题Button相同的材质设计动画,当您按下它时,您会看到高程更改并且按钮下方会出现阴影。效果显示在材料响应视频下的材料设计指南中:http://www.google.com/design/spec/animation/responsive-interaction.html#responsive-interaction-user-input。
我相信对于Button / ImageView来说,这是通过StateListAnimator完成的,但是我无法找到一种方法来为ViewPager做同样的事情,而ViewPager似乎没有按钮所具有的状态。
我尝试在自定义ViewPager上使用onInterceptTouch和onTouch,以便在按下和释放ViewPager时收听,但根据我的实验,并非所有MotionEvent都会被发送到ViewPager。
我也试过使用PageTransformer只取得了有限的成功。
有谁知道怎么做?
答案 0 :(得分:0)
您必须编辑项目布局。将其添加到Button / View / ImageView:
android:stateListAnimator="@anim/item_elevation"
然后添加此动画(例如anim / item_elevation.xml)。假设您的初始高程为1dp:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_enabled="true"
android:state_pressed="true">
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="translationZ"
android:valueFrom="1dip"
android:valueTo="3dip"
android:valueType="floatType" />
</item>
<item>
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="translationZ"
android:valueFrom="3dip"
android:valueTo="1dip"
android:valueType="floatType" />
</item>
注意:如果您想要涟漪效果添加: 机器人:?背景=&#34;机器人:selectableItemBackground&#34; (默认) 或者android:background =&#34;?selectableItemBackground&#34; (程序兼容性)