<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:orientation="vertical"
android:animateLayoutChanges="true"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
//here put the view which is always visible
<LinearLayout
android:layout_width="match_parent"
android:visibilty="gone"
android:id="@+id/expandableLayout"
android:layout_height="wrap_content">
//here put which will collapse and expand
</LinearLayout>
</android.support.v7.widget.CardView>
prendere un valore booleano IsExpanded in voi arraylist classe di oggetti
if (listobj.isexpanded)
{
holder.expandableLayout.setVisibility(View.VISIBLE);
}
else {
holder.expandableLayout.setVisibility(View.GONE);
}
holder.cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (listobj.isexpanded)
{
holder.expandableLayout.setVisibility(View.GONE);
listobj.isexpanded=false;
notifyItemChanged(position);
}
else {
holder.expandableLayout.setVisibility(View.VISIBLE);
listobj.isexpanded=true;
notifyItemChanged(position);
}
}
});
provare someting come questo
fonte
2016-07-15 08:15:30
Ci sono due parti su la vista della carta, la parte superiore che verrà sempre mostrata e una parte inferiore che verrà nascosta o mostrata, giusto? Quindi puoi cambiare la visibilità della parte inferiore ogni volta che viene toccata una carta (o qualsiasi altro evento) e rendere l'altezza della vista della carta 'wrap_content'. Se funziona come tu intendi, puoi facilmente renderlo un'animazione usando '' e '' in un file xml all'interno della cartella 'anim'. È questo ciò che stai chiedendo? Se è poi fammi sapere, posterò il codice per questo. –
NecipAllef