7

Chcę użyć Bottom-sheet z biblioteki wsparcia i dwóch ruchomych przycisków akcji (FABS), jak pokazuje obrazy. Chodzi o to, że chcę, aby oba FABS poruszały się razem z dolnym arkuszem, tak jak obraz 1 i 2. Jaki jest podstawowy układ, który muszę zastosować i jak sprawić, aby FABS był lepki na dolnej stronie?Arkusz kalkulacyjny z ruchomymi pływającymi przyciskami akcji

Picture 1 Picture 2

UPDATE

<LinearLayout 
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" 
android:orientation="vertical" 
tools:context=".MainActivity"> 

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:theme="@style/AppTheme.AppBarOverlay"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     app:popupTheme="@style/AppTheme.PopupOverlay"/> 

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


<android.support.design.widget.CoordinatorLayout 
    android:id="@+id/main_content" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <!-- my context here --> 

    </LinearLayout> 

     <!-- bottomsheet --> 
    <FrameLayout 
     android:id="@+id/bottom_sheet" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="#ff0000" 
     app:behavior_hideable="true" 
     app:layout_behavior="android.support.design.widget.BottomSheetBehavior"> 

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

    </FrameLayout> 

    <!-- FABS --> 

    <!-- wrap to primary fab to extend the height --> 

    <LinearLayout 
     android:id="@+id/primary_wrap" 
     android:layout_width="wrap_content" 
     android:layout_height="88dp" 
     app:layout_anchor="@id/bottom_sheet" 
     app:layout_anchorGravity="top|end"> 

     <android.support.design.widget.FloatingActionButton 
      android:id="@+id/primary" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 

      android:layout_margin="@dimen/fab_margin" 
      android:src="@android:drawable/ic_delete"/> 
    </LinearLayout> 


    <!-- Pin secondary fab in the top of the extended primary --> 
    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/secondary" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="top|end" 
     android:layout_margin="16dp" 
     android:src="@android:drawable/ic_dialog_email" 
     app:layout_anchor="@+id/primary_wrap" 
     app:layout_anchorGravity="top|end"/> 

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

podstawie Ruan_Lopes odpowiedź.

Przy tym układzie moje FABS działają tak, jak chcę, ale nadal uważam, że nie robię tego bardzo jasno.

Zastanawiam się, czy można to zrobić w bardziej oficjalny sposób.

+0

'myślę, że nie robię tego bardzo jasno. - SO nie jest forum dyskusyjnym - zadałeś pytanie i odpowiedziałeś na @Ruan_Lopes. Zgodnie z twoimi komentarzami, to rozwiązuje twój problem i twoje FAB-y poruszają się zgodnie z twoimi oczekiwaniami, dlatego powinieneś zaakceptować jego odpowiedź i zamknąć to pytanie. Jeśli masz inny problem, powinieneś zadać kolejne pytanie. –

+0

Proszę o przenoszenie fab ze spacją między nimi. Nie mam problemu z odpowiedzią, ale jest dla mnie o połowę. – thanassis

Odpowiedz

8

Można użyć układ podobny do tego:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout> 

    <android.support.design.widget.AppBarLayout> 
      <!-- Your code --> 
    </android.support.design.widget.AppBarLayout> 

    <!-- Your content --> 
    <include layout="@layout/content_main" /> 

    <!-- Bottom Sheet --> 
    <include layout="@layout/bottom_sheets_main"/> 

    <!-- First FAB --> 
    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     app:layout_anchor="@id/bottomSheet" 
     app:layout_anchorGravity="bottom|end"/> 

    <!-- Second FAB --> 
    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="top|end" 
     app:layout_anchor="@id/fab" 
     app:layout_anchorGravity="top" /> 

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

użyłem „obejmować” na przykład dla jasności, ale app: layout_anchor to, co się dzieje, aby Państwa fab „kija” na bottom-sheet, więc powinieneś umieścić identyfikator twojego dolnego arkusza jako parametr i możesz zastosować tę samą zasadę dla ciebie, gdy drugi FAB używasz layout_anchor do przyklejenia go na pierwszym FAB.

+0

To podejście dotyczy jednego przycisku. – thanassis

+0

Sprawdź moją zmienioną odpowiedź –

+0

Pracuję nad tym teraz. Twoja odpowiedź nie jest dla mnie całkowicie rozwiązaniem, ale daje mi pewne wskazówki. – thanassis

Powiązane problemy