0

BottomSheetについては、NestedScrollViewを使用して、多くのチュートリアルがあります。しかし、私の現在のサポートライブラリバージョン24.2.1で試してみたところ、私の中にトップパディングが含まれている理由がわからなくても数日かかりました。トップパディングがあるのはなぜ enter image description hereNestedScrollViewを使用するPersistent BottomSheetには、上部のパディングが含まれていますか? support-lib 24.2.1

:そして、これが結果です

<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@color/bgBottomSheetPlayer"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical"> 

     <include 
      android:id="@+id/bottomSheetPlayer" 
      layout="@layout/view_bottom_sheet_player_dark" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      app:playAction="@{playAction}" 
      app:playObject="@{playSong}" /> 

     <include 
      android:id="@+id/bottomSheetContent" 
      layout="@layout/view_action_detail_song" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      app:playSong="@{playSong}" 
      app:songActionHandler="@{songActionHandler}" /> 
    </LinearLayout> 
</android.support.v4.widget.NestedScrollView> 

<android.support.design.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:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:context=".ui.MainActivity"> 

    <!-- AppBar --> 
    <include 
     android:id="@+id/appBar" 
     layout="@layout/app_bar_layout_with_tab" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:tabPager="@{tabPager}" /> 

    <!-- Content --> 
    <android.support.v4.widget.SwipeRefreshLayout 
     android:id="@+id/swipeRefresh" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

     <FrameLayout 
      android:id="@+id/container" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 
    </android.support.v4.widget.SwipeRefreshLayout> 

    <!-- [START] BottomSheet --> 
    <include 
     android:id="@+id/bottomSheetMain" 
     layout="@layout/fragment_bottom_sheet_song" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:fitsSystemWindows="true" 
     app:behavior_hideable="false" 
     app:behavior_peekHeight="0dp" 
     app:layout_behavior="@string/bottom_sheet_behavior" /> 
    <!-- [END BottomSheet] --> 

</android.support.design.widget.CoordinatorLayout> 

そしてBottomSheetのレイアウトfragment_bottom_sheet_song.xml:ここ

は私の活動のレイアウトxmlですか?これをどうすれば解決できますか?

ありがとうございました。

答えて

0

数日後、この問題を解決するために、永続的なボトムシートのレイアウトコンテナはFrameLayoutである必要があります。そうでない場合(私の場合のように、NestedScrollViewのダイレクトを含めてボトムシートにしました)、デフォルトのトップパディングが含まれていますが、なぜか分かりません。だからここ

は、修正するために私の新しい活動のXMLレイアウトコードです:

<!-- [START] BottomSheet --> 
<FrameLayout 
    android:id="@+id/bottomSheetParent" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:fitsSystemWindows="true" 
    app:behavior_hideable="false" 
    app:behavior_peekHeight="0dp" 
    app:layout_behavior="@string/bottom_sheet_behavior"> 

    <include 
     android:id="@+id/bottomSheetMain" 
     layout="@layout/fragment_bottom_sheet_song" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 
</FrameLayout> 
<!-- [END BottomSheet] --> 

は、あなたも、このヘルプを願っています。

0

これをあなたのアクティビティマニフェストに追加してみてください。私のケースでは、ボトムシートが自動的にパディングを与えるようになっています。

android:windowSoftInputMode="adjustPan" 
関連する問題