2017-03-22 3 views
1

Ich habe Probleme mit meinem , denn wenn ich die Aktivität öffnen es eingeschaltet ist, die enter image description hereKann nicht Bottom Blatt verstecken, Android

Dies geschieht Ansicht zu blockieren, denke ich, weil der XML-Attribut deklarieren die mit 350dp der Höhe:

<android.support.v4.widget.NestedScrollView 
    android:id="@+id/bottom_sheet" 
    android:layout_width="match_parent" 
    android:layout_height="350dp" 
    android:background="?android:attr/windowBackground" 
    android:clipToPadding="true" 
    app:layout_behavior="android.support.design.widget.BottomSheetBehavior"> 

die Sache ist, ich kann diesen Wert nicht ändern, weil das nächste Mal 0DP, wenn ich versuche, die zu öffnen, gibt es keine ist, weil die Höhe 0DP ist, also wird es nichts zeigen. Meine Frage ist, gibt es eine Möglichkeit, die zu deaktivieren? (Ich habe versucht, STATE auf STATE_COLLAPSED zu setzen, hat aber nicht funktioniert). Bellow ist der Java-Code, der mit dem Bottom Sheet interagiert. JAVA:

View bottomSheet = findViewById(R.id.bottom_sheet); 
     mBottomSheetBehavior = BottomSheetBehavior.from(bottomSheet); 
     mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); 
     mBottomSheetBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() { 
      @Override 
      public void onStateChanged(View bottomSheet, int newState) { 
       if (newState == BottomSheetBehavior.STATE_COLLAPSED) { 
        //mBottomSheetBehavior.setPeekHeight(0); 
        //mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); 
        //mBottomSheetBehavior.isHideable(); 
       } 
      } 

      @Override 
      public void onSlide(View bottomSheet, float slideOffset) { 

      } 
     }); 

Antwort

2

: Schreibe:

mBottomSheetBehavior.setPeekHeight(0); 
2

zuerst müssen Sie das Attribut

app:behavior_hideable="true" 

in Ihrem

<android.support.v4.widget.NestedScrollView 
    android:id="@+id/bottom_sheet" 
    android:layout_width="match_parent" 
    android:layout_height="350dp" 
    android:background="?android:attr/windowBackground" 
    android:clipToPadding="true" 
    app:layout_behavior="android.support.design.widget.BottomSheetBehavior"> 

hinzufügen und dann können Sie den Boden verstecken Blatt usin

g
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_HIDDEN) 

und nicht

mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED) 

der Staat kollabiert ist zwischen HIDDEN und erweitert und seine heigth muss durch das Attribut angegeben werden:

app:behavior_peekHeight="200dp" 
+0

unteres Blatt nicht zeigen, wenn ich zusammengeklappten SetState. Ich habe App: behavior_peekHeight = "200dp" in XML-Code – kemdo

+0

nur wundernd, sind Ihre Unterseite ein erstes Kind in einem CoordinatorLayout? –

0
Inside oncreate add these lines, it can hide the bottombar 

mBottomSheetBehavior = BottomSheetBehavior.from (Bodenfolie); mBottomSheetBehavior.setHideable (true); // Wichtige mBottomSheetBehavior.setState (BottomSheetBehavior.STATE_HIDDEN) hinzuzufügen; // Wichtig hinzufügen

Verwandte Themen