卡片视图缩放动画

Son*_*ony 2 android android-cardview

在我的应用程序中,我有一个cardview,其中包含一个文本视图和一个按钮,该按钮最初是隐藏的,当单击卡片视图时,会显示该按钮.我不知道如何在显示按钮时将其设置为动画.任何人都可以在代码或xml中建议一个很好的参考或教程来做到这一点.这是我的代码

这是我的自定义行

<android.support.v7.widget.CardView 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="match_parent"
app:cardCornerRadius="1dp"
android:elevation="5dp"
android:layout_margin="5dp">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="@dimen/customRowPadding">

    <TextView
        android:id="@+id/txtCustomRow"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginLeft="10dp"
        android:text="@string/sampleText"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <Button
        android:id="@+id/btnHidden"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Hidden Button" />

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

适配器onBindViewHolder

 public void onBindViewHolder(MyViewHolder holder, int position) {
    holder.tv.setText(list.get(position));
    holder.Btn.setText("Hidden Button " + (position + 1));
    holder.Btn.setVisibility(View.GONE);
}
Run Code Online (Sandbox Code Playgroud)

查看Holder和clicklistener

static class MyViewHolder extends RecyclerView.ViewHolder {

    TextView tv ;
    Button Btn;
    public MyViewHolder(View itemView) {
        super(itemView);
        tv = (TextView) itemView.findViewById(R.id.txtCustomRow);
        Btn = (Button) itemView.findViewById(R.id.btnHidden);
        itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Btn.setVisibility(View.VISIBLE);
            }
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

Voi*_*icu 9

对于API 11或更高版本,最简单的方法是使用布局更改动画.因此,当您View.Visible在已离开的视图上设置可见性时,这将为布局中的视图创建空间,并从不可见到可见的淡入淡出动画.

您需要做的就是在父布局上设置此属性:

android:animateLayoutChanges="true"
Run Code Online (Sandbox Code Playgroud)