【发布时间】:2017-10-16 16:38:58
【问题描述】:
我正在为 LinearLayout 使用动画,但是在我第二次显示布局内的数据后,它的内容没有显示出来。
我的 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="test@email.com"
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))
);
}
第一次显示的数据:
折叠视图后第二次显示的数据:
知道为什么会这样吗?谢谢大家的时间!
【问题讨论】:
标签: android android-layout android-animation