0

我已经实现了一个布局,其中BottomSheetBehaviour和设置behavior_peekHeight为300dp和behavior_hideabletrueBottomSheetBehaviour启用拖动顶部

代码示例

<FrameLayout 
    android:id="@+id/sheet_layout" 
    android:layout_width="match_parent" 
    android:layout_height="@dimen/map_view_height" 
    android:background="@color/white" 
    app:behavior_hideable="true" 
    app:behavior_peekHeight="300dp" 
    app:behavior_skipCollapsed="true" 
    app:layout_behavior="@string/bottom_sheet_behavior"> 

    <include layout="@layout/sheet_content_layout"/> 

</FrameLayout> 

在这里,我能够与拖到底部隐藏布局。但是,一旦我将布局拖到底部,我就无法将其拖回原始的峰值高度。我怎样才能做到这一点?

+0

我不认为这是不好的要求用户从底部拖动它,尤其是对于那些使用软件底部的人。 – BakaWaii

+0

@BakaWaii我将展示一个最小的部分被拖到顶部。例如,如果您使用新的优步,您将能够从底部拖动消息。 – ImMathan

回答

0

您不能有BottomSheetpeekHeight。这意味着您无法将BottomSheet的高度设置为展开状态。至少,不是没有将BottomSheetBehavior类修改为您的特定用例。这可能有助于在这方面:Sliding up image with Official Support Library 23.x.+ bottomSheet like google maps

但是,如果你只想要一个bottomSheetView是在一个高度说,在折叠状态下100dp和可扩展到全屏幕,并拖回100dp,您可以使用默认行为。

<FrameLayout 
    android:id="@+id/sheet_layout" 
    android:layout_width="match_parent" 
    android:layout_height="@dimen/map_view_height" 
    android:background="@color/white" 
    app:behavior_peekHeight="100dp" 
    app:layout_behavior="@string/bottom_sheet_behavior"> 

    <include layout="@layout/sheet_content_layout"/> 

</FrameLayout> 

你也可以看看基于物理学的动画今年在IO引入。它有一个易于使用的FlingAnimation类,https://developer.android.com/topic/libraries/support-library/preview/fling-animation.html