2016-07-20 17 views
6

Ich versuche, ein unteres Blatt von der Google Design-Bibliothek zu implementieren. Ein Klick auf eine Schaltfläche sollte das untere Blatt öffnen, das das gesamte Aktivitätsfenster abdeckt. Wie wenn wir eine E-Mail im Posteingang von Gmail öffnen. Aber es sollte sich von unten öffnen und nach unten gleiten, um zu entlassen.Full Screen Bottom Sheet mit Schließen (X) -Taste an der Spitze

Schaltfläche klicken sollte unteren Blatt öffnen und auf Folie nach unten oder oben links Schließen (X) -Taste sollte das Blatt schließen.

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

    <android.support.v4.widget.NestedScrollView 
     android:id="@+id/bottom_sheet" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:layout_behavior="@string/bottom_sheet_behavior"> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="Hello Bottom Sheet !!" /> 

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

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

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

Und ich bin Initialisieren es wie folgt aus:

ich so etwas wie dies eingerichtet haben

mBottomSheet = (NestedScrollView) findViewById(R.id.bottom_sheet); 
    mBottomSheetBehavior = BottomSheetBehavior.from(mBottomSheet); 
    mButton = (Button) findViewById(R.id.bottom_sheet_button); 
    mButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED); 
     } 
    }); 

Allerdings, wenn ich auf eine Schaltfläche klicken, wird der Text nur am unteren Rand . Überlappung des vorhandenen Standardinhalts. Und keine schwarze transparente Färbung hinter dem unteren Blatt.

Wie kann ich Vollbild beim Klicken auf die Schaltfläche machen?

Der Grund, warum ich hier kein Fragment verwende, ist, dass ich einige (viele) Variablen abhängig vom Inhalt des unteren Blattes habe. Also, wenn ich ein unteres Blatt über ein Fragment zeige, muss ich alle Daten hin und her bekommen. Um dies zu vermeiden, möchte ich, dass es Teil der Aktivität ist.

Gibt es eine Möglichkeit, dies zu erreichen? Danke für Ihre Hilfe.

+0

das ist ein schrecklicher Grund, kein "Fragment" zu haben. –

+0

Ich weiß das! :(Es gibt so viele Daten, von denen ich Bottom-Sheet-Inhalt vorbereiten. – kirtan403

+0

Und das kann man nicht im 'Fragment' warum genau? –

Antwort

0
mButton.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     mBottomsheet.callOnClick(); 
    } 
}); 

diesen Code Versuchen ........

0

Wenn Sie auf klicken Sie diese Aktion wie Ihr NestedScrollView Behälter betrachten kann nur sichtbar werden, so dass es stattfinden wird, wie Sie bei params

schreiben
android:layout_width="match_parent" 
android:layout_height="wrap_content" 

Wenn Sie wollen, dass es nur volle Mutterhöhe nehmen

android:layout_height="match_parent" 

verwenden Wenn darüber zu sprechen, Schatten Hintergrund wie bei Fragmente können Sie Trick, dass Sie Hintergrund Alpha Farbe für NestedScrollView

android:background="#64000000" 

Aber es ist ein Hack einstellen können, können Sie Fragment verwenden und einfach alle Informationen, um es von Aktivität senden und umgekehrt