2016-04-15 31 views
14

Ho già mostrato il mio layout lenzuolo di sotto con la sua altezza peek impostato 100dp. Ma come posso limitare il mio foglio di base ad espandersi solo a 500dp? Questo è il mio layout di campione:Come impostare l'altezza espansa massima nel foglio di calcolo del design di supporto Android?

<android.support.design.widget.CoordinatorLayout 
android:id="@+id/coordinator" 
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"> 

<fragment xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/map" 
    android:name="com.google.android.gms.maps.SupportMapFragment" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".MapsActivity" /> 

<android.support.v4.widget.NestedScrollView 
    android:id="@+id/design_bottom_sheet" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#000000" 
    app:behavior_hideable="true" 
    app:behavior_peekHeight="100dp" 
    app:layout_behavior="android.support.design.widget.BottomSheetBehavior"> 

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

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="100dp" 
      android:layout_marginBottom="5dp" 
      android:background="#e444ff" /> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="100dp" 
      android:layout_marginBottom="5dp" 
      android:background="#e444ff" /> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="100dp" 
      android:layout_marginBottom="5dp" 
      android:background="#e444ff" /> 

    </LinearLayout> 

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

<android.support.design.widget.FloatingActionButton 
    android:id="@+id/fab" 
    android:layout_margin="@dimen/activity_horizontal_margin" 
    app:layout_anchor="@+id/design_bottom_sheet" 
    app:layout_anchorGravity="top|right|end" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 

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

Oltre alla mia domanda, come posso impedire all'utente di trascinare il lenzuolo inferiore e verso il basso?

risposta

12

per fermare il lenzuolo di sotto di muoversi l'intero schermo è semplice, basta impostare un layout_height per il vostro NestedScrollView a 500dp, anche probabilmente si desidera impostare è layout_gravity="bottom"

<android.support.v4.widget.NestedScrollView 
    android:id="@+id/design_bottom_sheet" 
    android:layout_width="match_parent" 
    android:layout_height="500dp" 
    android:background="#000000" 
    android:layout_gravity="bottom" 
    app:behavior_hideable="true" 
    app:behavior_peekHeight="100dp" 
    app:layout_behavior="android.support.design.widget.BottomSheetBehavior"> 

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

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="100dp" 
      android:layout_marginBottom="5dp" 
      android:background="#e444ff" /> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="100dp" 
      android:layout_marginBottom="5dp" 
      android:background="#e444ff" /> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="100dp" 
      android:layout_marginBottom="5dp" 
      android:background="#e444ff" /> 

    </LinearLayout> 

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

se non si desidera che il visualizzare per essere trascinabile, quindi è necessario impostare behavior_peekHeight e layout_height agli stessi valori.

E per fermare la vista di essere giù trascinabili è la bandiera behavior_hideable solo impostare questo su false

Buona fortuna e Buon Coding!

+1

che bello! quelle sono soluzioni abbastanza intelligenti. Grazie mille! –

+0

o hai dimenticato qualcosa dovremmo impostare app: behavior_hideable a false in modo che ci assicuriamo che il foglio inferiore sia decrescente in basso –

+1

Questo non ha risolto purtroppo l'altezza del foglio inferiore. ! – abat