J'utilise une animation pour LinearLayout, mais après avoir montré les données de la mise en page pour la deuxième fois, son contenu n'est pas affiché.L'animation LinearLayout n'affiche pas les données depuis la mise en page après la deuxième utilisation
Mon XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.CardView
android:id="@+id/invoiceCardView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="5dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="5dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.1"
android:gravity="center_vertical"
android:orientation="vertical">
<com.rey.material.widget.CheckBox
android:id="@+id/selectInvoice"
style="@style/Material.Drawable.CheckBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.33"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/invoiceId"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="#00000003"
android:textColor="#5d9cec"
android:textSize="18sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/invoiceStatus"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.37"
android:background="#26C6DA"
android:gravity="center"
android:text="active"
android:textColor="@android:color/white"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="0.25"
android:gravity="center_vertical"
android:orientation="vertical">
<TextView
android:id="@+id/invoiceAmount"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="$ 222,064.00"
android:textSize="16sp"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_weight="0.1"
android:gravity="center_vertical"
android:orientation="vertical">
<com.mikepenz.iconics.view.IconicsImageView
android:id="@+id/showDetailsArrow"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_gravity="center"
app:iiv_color="@color/colorGrey"
app:iiv_icon="faw-angle-down" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/invoiceDetails"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:visibility="gone">
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp">
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="5dp"
android:background="@color/appBlack">
<TextView
android:id="@+id/textView12"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Details"
android:textColor="@android:color/white"
android:textSize="16sp"
android:textStyle="bold" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="left"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:text="Date Sent"
android:textColor="@color/colorGrey" />
<TextView
android:id="@+id/dateSent"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="right"
android:text="7/27/2017"
android:textStyle="bold" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textView18"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="left"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:text="Date Paid"
android:textColor="@color/colorGrey" />
<TextView
android:id="@+id/datePaid"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="right"
android:text="7/27/2017"
android:textStyle="bold" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textView21"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="left"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:text="Days Past Due"
android:textColor="@color/colorGrey" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="right|center_vertical"
android:orientation="vertical">
<TextView
android:id="@+id/daysPastDue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#f00000"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:text="70 days"
android:textColor="@android:color/white"
android:textStyle="bold" />
</LinearLayout>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="left"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:text="@string/name"
android:textColor="@color/colorGrey" />
<TextView
android:id="@+id/name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="right"
android:text="Test"
android:textStyle="bold" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="left"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:text="Email"
android:textColor="@color/colorGrey" />
<HorizontalScrollView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
android:layout_weight="1"
android:fillViewport="true">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/email"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="right"
android:text="[email protected]"
android:textStyle="bold" />
</LinearLayout>
</HorizontalScrollView>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="left"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:text="Balance"
android:textColor="@color/colorGrey" />
<TextView
android:id="@+id/balance"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="right"
android:text="$ 420.00"
android:textStyle="bold" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="left"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:text="Preview"
android:textColor="@color/colorGrey" />
<TextView
android:id="@+id/balance"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="right"
android:text="View"
android:textColor="#5d9cec" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="5dp"
android:gravity="center_vertical">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:gravity="left"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:text="Actions"
android:textColor="@color/colorGrey" />
<fr.ganfra.materialspinner.MaterialSpinner
android:id="@+id/actions"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textColor="@color/colorGrey"
android:textStyle="bold"
app:ms_arrowColor="@color/colorGrey"
app:ms_enableFloatingLabel="false"
app:ms_hint="Select Action"
app:ms_hintColor="@color/colorGrey"
app:ms_hintTextSize="14sp" />
</TableRow>
</TableLayout>
</LinearLayout>
</LinearLayout>
</android.support.v7.widget.CardView>
</LinearLayout>
</LinearLayout>
Java:
//variable declaration
private boolean showRowDetails = false;
showRowDetails = !showRowDetails;
final LinearLayout invoiceDetails = (LinearLayout) view.findViewById(R.id.invoiceDetails);
invoiceDetails.setAlpha(0.0f);
IconicsImageView showDetailsArrow = (IconicsImageView) view.findViewById(R.id.showDetailsArrow);
if(showRowDetails){
invoiceDetails.animate()
.translationY(invoiceDetails.getHeight())
.alpha(1.0f)
.setDuration(800)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
invoiceDetails.setVisibility(View.VISIBLE);
}
});
showDetailsArrow.setImageDrawable(
new IconicsDrawable(context)
.icon("faw-angle-up")
.color(ContextCompat.getColor(context, R.color.colorGrey))
);
}
else {
invoiceDetails.animate()
.translationY(0)
.alpha(0.0f)
.setDuration(800)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
invoiceDetails.setVisibility(View.GONE);
}
});
showDetailsArrow.setImageDrawable(
new IconicsDrawable(context)
.icon("faw-angle-down")
.color(ContextCompat.getColor(context, R.color.colorGrey))
);
}
données sont publiées pour la première fois:
données montré la deuxième fois après l'effondrement de la vue:
Toute idée pourquoi est-ce qui se passe? Merci à tous pour votre temps!
Vous avez oublié d'appeler 'start()' à la fin. –
@Brian Il est très étrange, même si j'ai fait ces changements maintenant sur le deuxième robinet, je peux voir le contenu se glisser hors de la disposition linéaire et disparaître – Alphonse
Ah j'ai aussi vu ce problème similaire avant, jamais compris pourquoi Android les animations sont parfois un mal de tête! Avez-vous également mis en œuvre les modifications pré-état et post-changement de votre animation cachée? – Brian