2017-12-01 16 views
0

BottomNavigationview와 함께 하단 시트를 표시하려고합니다. But overlapping. Check Here하단 시트를 하단 네비게이션 뷰의 맨 위로 설정하는 방법

어떻게 맨 아래쪽 여백에 줄을 둡니다.

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([email protected]) as RecyclerView.LayoutManager? 
      bottomSheetRecyclerview.adapter= BottomSheetDialogAdaptor([email protected], 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에 말했다. 그러나 콜백은 HIDDEN 상태로 표시합니다. 사용

답변

1

보십시오 : 당신의 BottomNavigationView 당신이 내 문제를 해결하지만 새로운 문제를 만들어 This Link

+0

볼 수 있습니다 더 많은 정보를 위해 귀하의 BottomSheetView

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

의 위/아래에 그것을 고정하기위한 layout_anchor. 이제 하단 시트가 접히지 않습니다. –

+0

BottomSheet에서 높이를 들여다보기 ... 콜백 메소드를 재정 의하여 콜백 메소드가 어떤 상태인지 알아냅니다. http : //android-er.blogspot.com/2016/06/sets-height-of -collapsed-bottom-sheet.html – rafsanahmad007

+0

fab을 사용하여 시트의 표시/숨기기 상태를 제어하기 때문에 콜백 메소드를 재정의 할 필요가 없다고 생각합니다. –