Android 单击recyclerview元素时的动画
当我点击recyclerview元素时,我需要制作一个类似于下拉列表的动画。在Item2 xml标记中,1是主标记,第二个标记在单击时可见。根据这个想法,它应该是这样的:我点击元素,它以一个退出动画打开。再次按下时,它关闭。还有动画。目前,这些元素只是突然出现,也突然消失。如果可能的话,我不想使用第三方库。我想做一些像 在这段代码中,我要么打开消息活动,要么打开有关用户的其他信息 布局:Android 单击recyclerview元素时的动画,android,android-recyclerview,android-animation,Android,Android Recyclerview,Android Animation,当我点击recyclerview元素时,我需要制作一个类似于下拉列表的动画。在Item2 xml标记中,1是主标记,第二个标记在单击时可见。根据这个想法,它应该是这样的:我点击元素,它以一个退出动画打开。再次按下时,它关闭。还有动画。目前,这些元素只是突然出现,也突然消失。如果可能的话,我不想使用第三方库。我想做一些像 在这段代码中,我要么打开消息活动,要么打开有关用户的其他信息 布局: <LinearLayout xmlns:android="http://schemas.an
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:padding="10dp"
android:layout_height="wrap_content">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/info_about">
///Info about users(username and him photo)
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/info_about"
android:paddingTop="5dp"
android:layout_marginTop="45dp"
android:layout_centerHorizontal="true"
android:orientation="vertical"
android:visibility="gone"
android:id="@+id/info">
///Info about users(call_number, email... When i clicked on item)
</LinearLayout>
</androidx.cardview.widget.CardView>
</LinearLayout>
///关于用户的信息(用户名和他的照片)
///关于用户的信息(当我点击项目时,电话号码、电子邮件等)
试试这个
holder.binding.cardview.setOnClickListener(v -> {
if (holder.binding.expandableView.getVisibility()==View.GONE){
TransitionManager.beginDelayedTransition(holder.binding.cardview, new AutoTransition());
holder.binding.expandableView.setVisibility(View.VISIBLE);
} else {
TransitionManager.beginDelayedTransition(holder.binding.cardview, new AutoTransition());
holder.binding.expandableView.setVisibility(View.GONE);
}
if (holder.binding.playlayout.getVisibility()==View.GONE){
TransitionManager.beginDelayedTransition(holder.binding.cardview, new AutoTransition());
holder.binding.playlayout.setVisibility(View.VISIBLE);
} else {
TransitionManager.beginDelayedTransition(holder.binding.cardview, new AutoTransition());
holder.binding.playlayout.setVisibility(View.GONE);
}
});
}
谢谢您的回答,但是您的解决方案中的约束是什么?我的clicklistener如下所示:holder.itemView.setOnClickListener(new View.OnClickListener(){@Override public void onClick(View v){一些代码。。。。
holder.binding.cardview.setOnClickListener(v -> {
if (holder.binding.expandableView.getVisibility()==View.GONE){
TransitionManager.beginDelayedTransition(holder.binding.cardview, new AutoTransition());
holder.binding.expandableView.setVisibility(View.VISIBLE);
} else {
TransitionManager.beginDelayedTransition(holder.binding.cardview, new AutoTransition());
holder.binding.expandableView.setVisibility(View.GONE);
}
if (holder.binding.playlayout.getVisibility()==View.GONE){
TransitionManager.beginDelayedTransition(holder.binding.cardview, new AutoTransition());
holder.binding.playlayout.setVisibility(View.VISIBLE);
} else {
TransitionManager.beginDelayedTransition(holder.binding.cardview, new AutoTransition());
holder.binding.playlayout.setVisibility(View.GONE);
}
});
}