Пытаясь установить BottomSheetBehavior с соответствующим обратным вызовом для CoordinatorLayout, я наткнулся на это.При получении параметров макета указанного CoordinatorLayout я продолжаю получать параметры FrameLayout.Это ситуация для кода.
Из реализации BottomSheetDialogFragment
override fun setupDialog(dialog: Dialog?, style: Int) {
super.setupDialog(dialog, style)
val binding = DataBindingUtil.inflate<AmbientDialogBinding>(LayoutInflater.from(activity), R.layout.ambient_dialog, null, false)
val params = activity?.findViewById<CoordinatorLayout>(R.id.homeCoordinatorLayout)?.layoutParams as CoordinatorLayout.LayoutParams
val behaviour = params.behavior
if (behaviour != null && behaviour is BottomSheetBehavior) {
behaviour.setBottomSheetCallback(behaviorCallback)
}
}
main_activity.xml
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/homeCoordinatorLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/lightGray"
app:layout_behavior="@string/bottom_sheet_behavior"
tools:context=".HomeActivity">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/colorPrimary"
android:elevation="4dp"
android:theme="@style/Base.ThemeOverlay.AppCompat.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="?attr/actionBarSize" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/addAmbientButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center"
android:layout_marginBottom="8dp"
android:clickable="true"
android:focusable="true"
app:backgroundTint="@color/colorPrimary"
app:srcCompat="@drawable/ic_add_white_24dp" />
</android.support.design.widget.CoordinatorLayout>
фрагмент_dialog.xml
<android.support.v7.widget.LinearLayoutCompat
android:id="@+id/ambientDialogTextLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:orientation="vertical">
<EditText
android:id="@+id/ambientIdField"
android:layout_width="match_parent"
android:layout_height="56dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:gravity="center"
android:hint="Identificativo Ambiente"
android:text="@={vm.UIDLive}"
android:textSize="16sp" />
<EditText
android:id="@+id/ambientNameField"
android:layout_width="match_parent"
android:layout_height="56dp"
android:layout_marginTop="16dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:gravity="center"
android:hint="Nome Ambiente"
android:text="@={vm.nameLive}"
android:textSize="16sp" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/confirmAmbientButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:clickable="true"
android:focusable="true"
app:backgroundTint="@color/colorPrimary"
app:srcCompat="@drawable/ic_check_white_24dp" />
</android.support.v7.widget.LinearLayoutCompat>
FrameLayout, который я использую в основном упражнении, xml используется для другого фрагмента, который, я думаю, не имеет никакого отношения к проблеме.Надеюсь, кто-нибудь может мне помочь.Заранее спасибо!