好的,如果我理解了这个问题,你应该确保在 GridView 中点击项目,所以首先在 Layout xml 上的 GridView 项目中设置这个:
android:focusable="false"
android:focusableInTouchMode="false"
android:clickable="false"
然后,在你的 gridView 上设置 OnItemClickListener():
myGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
flipTheView(view, position);
}
});
视图对象是在 GridView 上单击的项目,位置(猜猜是什么?)是来自适配器的项目的位置(显示在 Grid 上)
private void flipTheView(View view) {
AnimatorSet setFlipInFront = (AnimatorSet) AnimatorInflater.loadAnimator(context, R.animator.flip_in_front);
setFlipInFront.setTarget(view);
setFlipInFront.start();
}
还有flip_in_front.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator">
<!-- Rotate. -->1000
<objectAnimator
android:valueFrom="0"
android:valueTo="-180"
android:propertyName="rotationY"
android:duration="@integer/card_flip_time_full" />
<!-- When the rotation reach half of animation, show the card -->
<objectAnimator
android:valueFrom="0.0"
android:valueTo="1.0"
android:propertyName="alpha"
android:duration="1"
android:startOffset="@integer/500"/>
</set>