#android #android-xml #bottom-sheet #android-bottomsheetdialog
Вопрос:
Пользователь может развернуть карточки на моем нижнем листе. Представление, которое изменяет видимость, анимируется правильно, просто высота нижнего листа прыгает, и я не знаю, как это анимировать, учитывая, что у меня есть отдельный класс для этого, используя фрагмент нижней таблицы.
Это упрощенная версия моего XML-макета.
lt;?xml version="1.0" encoding="utf-8"?gt; lt;androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@ id/sheetParent" android:background="@drawable/bottom_sheet_background" android:layout_width="match_parent" android:layout_height="match_parent"gt; lt;FrameLayout android:id="@ id/bottomSheetBehavior" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"gt; lt;androidx.core.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="wrap_content"gt; lt;androidx.constraintlayout.widget.ConstraintLayout android:id="@ id/bottomSheetContent" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"gt; lt;View android:id="@ id/drag_pill" android:layout_width="50dp" android:layout_height="5dp" android:layout_marginStart="16dp" android:layout_marginTop="16dp" android:layout_marginEnd="16dp" android:background="@drawable/bottom_sheet_pill" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /gt; lt;/androidx.core.widget.NestedScrollViewgt; lt;/FrameLayoutgt; lt;/androidx.coordinatorlayout.widget.CoordinatorLayoutgt;
Допустим, я хочу анимировать видимость drag_pill. Я сделал это вот так:
class ItemInfoBottomSheet(context: Context, item: Item) : BottomSheetDialogFragment() { val item: Item = item lateinit var sheetParent: CoordinatorLayout lateinit var bottomSheetBehavior: FrameLayout lateinit var bottomSheet: BottomSheetBehaviorlt;Viewgt; override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { val view: View = inflater.inflate( R.layout.bottom_sheet_item_info, container, false ) sheetParent = view.findViewById(R.id.sheetParent) bottomSheetBehavior = view.findViewById(R.id.bottomSheetBehavior) bottomSheet = BottomSheetBehavior.from(bottomSheetBehavior) TransitionManager.beginDelayedTransition(sheetParent, AutoTransition()) drag_pill.isVisible = !drag_pill.isVisible return view } }
Почему нижний лист прыгает по высоте и как я могу это анимировать?