Анимация раскрытия контейнера
Есть 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 и опускался в низ с анимацией?