Анимация раскрытия контейнера

Есть LinearLayout1 в котором находиться Button1 и LinearLayout2, у LinearLayout2 стоит android:visibility="gone", по нажатию на Button1 меняется на android:visibility="visible", нужно добавить анимацию опускания в низ для LinearLayout2 когда он становиться visible. Я создал в папке anim файл с таким кодом.

expand_down.xml

<translate         
   android:duration="1000"
   android:fromYDelta="0"
   android:toYDelta="100%p"/>

В java файле я написал так

LinearLayout info_f = requireView().findViewById(R.id.info_f);
Animation slideDown = AnimationUtils.loadAnimation(getContext(), R.anim.expand_down);
TextView txv_info_f = requireView().findViewById(R.id.txv_info_f);

  txv_info_f.setOnClickListener(v -> {
            if (!firstPlayed_info_f) {
                info_f.startAnimation(slideDown);
                info_f.setVisibility(View.VISIBLE);
                firstPlayed_info_f = true;
            } else {
                info_f.setVisibility(View.GONE);
                firstPlayed_info_f = false;
            }
        });

В xml

<LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="6dp"
                    android:background="@drawable/bg_overlay"
                    android:orientation="horizontal"
                    android:paddingHorizontal="6dp">

                    <androidx.cardview.widget.CardView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:backgroundTint="@color/color_11"
                        app:cardCornerRadius="6dp"
                        app:cardElevation="0dp">

                        <androidx.cardview.widget.CardView
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:layout_margin="1dp"
                            app:cardCornerRadius="5dp"
                            app:cardElevation="0dp">

                            <LinearLayout
                                android:layout_width="match_parent"
                                android:layout_height="match_parent"
                                android:orientation="vertical">

                                <LinearLayout
                                    android:id="@+id/exp_info_f"
                                    android:layout_width="match_parent"
                                    android:layout_height="match_parent"
                                    android:orientation="vertical">

                                    <TextView
                                        android:id="@+id/txv_info_f"
                                        android:layout_width="match_parent"
                                        android:layout_height="48dp"
                                        android:background="@color/color_6"
                                        android:gravity="center"
                                        android:text="@string/Information_about"
                                        android:textAllCaps="false"
                                        android:textColor="@color/color_11"
                                        android:textSize="20sp"
                                        android:textStyle="bold" />
                                </LinearLayout>

                                <LinearLayout
                                    android:id="@+id/info_f"
                                    android:layout_width="match_parent"
                                    android:layout_height="match_parent"
                                    android:layout_marginBottom="6dp"
                                    android:orientation="vertical"
                                    android:paddingHorizontal="6dp"
                                    android:visibility="visible">

                                    <View
                                        android:layout_width="match_parent"
                                        android:layout_height="1dp"
                                        android:background="@color/color_11" />

                                    <TextView
                                        android:layout_width="match_parent"
                                        android:layout_height="wrap_content"
                                        android:background="@color/color_6"
                                        android:gravity="fill_vertical"
                                        android:paddingVertical="6dp"
                                        android:text="Текст"
                                        android:textAllCaps="false"
                                        android:textColor="@color/color_11"
                                        android:textSize="16sp"
                                        android:textStyle="bold" />

                                    
                                </LinearLayout>
                            </LinearLayout>
                        </androidx.cardview.widget.CardView>
                    </androidx.cardview.widget.CardView>
                </LinearLayout>

Проблема в том что анимация применяется на содержимое контейнера а не на сам контейнер, то есть по нажатию на кнопку LinearLayout становиться visible и анимация опускает содержимое контейнера

Как сделать так чтобы анимация применялась на контейнер, то есть что бы по нажатию на кнопку LinearLayout становился visible и опускался в низ с анимацией?


Ответы (0 шт):