Android не работает анимация пульсации на cardview, когда установлено cardBackgroundColor - PullRequest
0 голосов
/ 31 января 2019

У меня есть просмотрщик. Корень элемента просмотра - это просмотр карт. Я хочу настроить анимацию пульсаций при просмотре карт, когда нажимаю на элемент просмотра.Я тестировал этот код в некоторых проектах, и он работает, но когда я устанавливаю cardBackgroundColor на cardview, он не работает. Как я могу решить эту проблему? Помогите мне.

<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_marginTop="4dp"
    android:id="@+id/card_studentRow_parent"
    android:layout_marginRight="8dp"
    android:layout_marginLeft="8dp"
    app:cardBackgroundColor="@color/colorWhite"
    android:foreground="?android:attr/selectableItemBackground"
    android:clickable="true"
    android:focusable="true"
    android:layout_marginBottom="4dp"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_height="wrap_content">

        <RelativeLayout
            android:id="@+id/rel_studentRow_parent"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <TextView
                android:layout_margin="8dp"
                android:textSize="16sp"
                tools:text="mojtaba"
                android:id="@+id/txt_studentRow_name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />

            <TextView
                android:textSize="16sp"
                tools:text="nekooei"
                android:layout_margin="8dp"
                android:layout_below="@id/txt_studentRow_name"
                android:id="@+id/txt_studentRow_family"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />

            <TextView
                android:textColor="@color/colorPrimary"
                android:id="@+id/txt_studentRow_field"
                android:layout_below="@+id/txt_studentRow_family"
                tools:text="android developer"
                android:layout_margin="8dp"
                android:layout_alignParentRight="true"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />

        </RelativeLayout>
</android.support.v7.widget.CardView>


adapter:

 public class StudentAdapter extends RecyclerView.Adapter<StudentAdapter.StudentViewHolder> {

    private Context context;
    private List<Students> studentsList;
    public StudentAdapter(Context context, List<Students> studentsList){
        this.context=context;
        this.studentsList=studentsList;
    }

    @NonNull
    @Override
    public StudentViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view= LayoutInflater.from(context).inflate(R.layout.student_row,viewGroup,false);
        return new StudentViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull StudentViewHolder studentViewHolder, final int position) {

        final Students students=studentsList.get(position);
        studentViewHolder.id=students.getId();
        studentViewHolder.txtName.setText(students.getName());
        studentViewHolder.txtFamily.setText(students.getFamily());
        studentViewHolder.txtField.setText(students.getField());

        studentViewHolder.parent.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(context, students.getId()+"", Toast.LENGTH_SHORT).show();
            }
        });
    }

    @Override
    public int getItemCount() {
        return studentsList.size();
    }

    public class StudentViewHolder extends RecyclerView.ViewHolder{
        TextView txtName,txtFamily,txtField;
        CardView parent;
        int id;

        public StudentViewHolder(@NonNull View itemView) {
            super(itemView);
            txtName=(TextView)itemView.findViewById(R.id.txt_studentRow_name);
            txtFamily=(TextView)itemView.findViewById(R.id.txt_studentRow_family);
            txtField=(TextView)itemView.findViewById(R.id.txt_studentRow_field);
            parent=(CardView) itemView.findViewById(R.id.card_studentRow_parent);
        }
    }
}
...