【问题标题】:How to set the bottomsheet to the top of bottom navigationview如何将底页设置为底部导航视图的顶部
【发布时间】:2017-12-01 10:14:41
【问题描述】:

我正在尝试与底部导航视图一起显示底部工作表。

我将如何为底部工作表提供底部边距。

XML 代码:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.NestedScrollView 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/bottomSheet"
    android:background="@android:color/white"
    android:paddingTop="@dimen/activity_horizontal_margin"
    app:layout_behavior="android.support.design.widget.BottomSheetBehavior"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <android.support.constraint.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <android.support.v7.widget.RecyclerView
            android:id="@+id/bottomSheetRecyclerview"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    </android.support.constraint.ConstraintLayout>

</android.support.v4.widget.NestedScrollView>

实现代码:

 override fun openBottomDialogView() {

        val bottomSheetView= findViewById<NestedScrollView>(R.id.bottomSheet) as NestedScrollView
        Log.e("Bottom sheet view ",bottomSheetView.toString())


         dashboardBottomSheetBehaviour = BottomSheetBehavior.from(bottomSheetView)
            dashboardBottomSheetBehaviour.isHideable=true

        if(dashboardBottomSheetBehaviour.getState() != BottomSheetBehavior.STATE_EXPANDED) {

            bottomSheetRecyclerview.layoutManager= LinearLayoutManager(this@DashboardActivity) as RecyclerView.LayoutManager?
            bottomSheetRecyclerview.adapter= BottomSheetDialogAdaptor(this@DashboardActivity, getBottomSheetitem())
            dashboardBottomSheetBehaviour.setState(BottomSheetBehavior.STATE_EXPANDED);
        }
        else {
            closeBottomView()
        }
    }

我尝试设置 nestedscrollview 的固定高度,然后给出边距,但这也没有用。

关于我面临的新问题

fun closedBottomView(){
     Log.e("CLose ","Old bottom sheet")
        dashboardBottomSheetBehaviour.state=BottomSheetBehavior.STATE_HIDDEN
        Log.e("Final state ",dashboardBottomSheetBehaviour.state.toString())

}

这里的最终日志显示底部工作表状态为 STATE_SETTLING。但是回调在隐藏状态下说它。

【问题讨论】:

    标签: android bottom-sheet android-nestedscrollview


    【解决方案1】:

    尝试使用:layout_anchor 为您的BottomNavigationView 将其锚定在您的BottomSheetView 的顶部/底部

     app:layout_anchor="@+id/bottomSheet" --> BottomSheet view ID
     app:layout_anchorGravity="bottom|end"
    

    欲了解更多信息,您可以查看This Link

    【讨论】:

    • 这解决了我的问题,但产生了新问题。现在底部工作表没有折叠。
    • 在您的 BottomSheet 上设置一个窥视高度......并覆盖回调方法以找出它处于哪个状态......请参阅:android-er.blogspot.com/2016/06/…
    • 我认为我不需要重写回调方法,因为我正在使用 fab 控制工作表的显示/隐藏状态。
    • 我的意思是出于调试目的......因为我找不到它不崩溃的原因......
    【解决方案2】:

    我解决这个问题的方法是用一个视图包裹我原来的底页,并将最上面的视图的大小设置为 72dp(大约是底部导航栏的大小)。 示例:

    <LinearLayout 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:layout_width="match_parent"
    android:layout_height="184dp"
    app:behavior_hideable="true"
    android:backgroundTint="@android:color/transparent"
    app:layout_behavior="android.support.design.widget.BottomSheetBehavior"
    tools:showIn="@layout/activity_main">
    
    
    <android.support.constraint.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="112dp"
        android:background="@drawable/bg_rounded_transparent">
    
        <ImageView
            android:id="@+id/imageViewThumbnailMap"
            android:layout_width="156dp"
            android:layout_height="match_parent"
            android:background="@drawable/bg_rounded_transparent"
            android:scaleType="fitXY"
            android:src="@drawable/ic_logo"
            app:layout_constraintStart_toStartOf="parent" />
    
        <TextView
            android:id="@+id/textViewThumbnailDistance"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:textAppearance="@style/TextAppearance.AppCompat.Caption"
            app:layout_constraintBottom_toTopOf="@+id/textViewThumbnailName"
            app:layout_constraintStart_toEndOf="@+id/imageViewThumbnailMap"
            app:layout_constraintTop_toTopOf="parent"
            tools:text="5km" />
    
        <TextView
            android:id="@+id/textViewThumbnailName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:textAppearance="@style/TextAppearance.AppCompat.Headline"
            app:layout_constraintBottom_toTopOf="@+id/textViewThumbnailDateTime"
            app:layout_constraintStart_toEndOf="@+id/imageViewThumbnailMap"
            app:layout_constraintTop_toBottomOf="@+id/textViewThumbnailDistance"
            tools:text="Karaoke golos" />
    
        <TextView
            android:id="@+id/textViewThumbnailDateTime"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:layout_marginBottom="8dp"
            android:textAppearance="@style/TextAppearance.AppCompat.Light.SearchResult.Subtitle"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toEndOf="@+id/imageViewThumbnailMap"
            app:layout_constraintTop_toBottomOf="@+id/textViewThumbnailName"
            tools:text="19:30-23:50" />
    </android.support.constraint.ConstraintLayout>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-07
      • 1970-01-01
      • 2019-10-19
      相关资源
      最近更新 更多