2015-01-12 11 views
24

Sto usando this library per implementare una barra di azione mobile e non riesco a trovare un modo per spostare il pulsante quando sullo schermo appare una barra di snack. È possibile anche con quella libreria?Spostare il pulsante di azione mobile su e giù per evitare di essere bloccato da uno snackbar

+0

Si dovrebbe passare attraverso i problemi Github. Sono venuto in questo. https://github.com/makovkastar/FloatingActionButton/issues/90 e questo https://github.com/makovkastar/FloatingActionButton/issues/90 –

+0

Impressionante. Devo averlo perso perché ho già esaminato i problemi del GH. Grazie! Ho funzionato ora. – naja

+0

Fantastico. Stavo pensando di usare quella libreria. È stato facile da risolvere? –

risposta

6

È possibile passare a android.support.design.widget.FloatingActionButton e utilizzare CoordinatorLayout per specificare i comportamenti per le proprie visualizzazioni.

CoordinatorLayout è un FrameLayout superpotente.

CoordinatorLayout è destinato per due casi di utilizzo principali:

  1. come decorazione applicazioni di primo livello o il layout cromo
  2. come contenitore per una specifica interazione con uno o più bambini vede

Specificando Comportamenti per le viste secondarie di un CoordinatorLayout è possibile fornire molte interazioni diverse all'interno di un singolo genitore e tali viste possono anche interagire l'una con l'altra con . Le classi vista possono specificare un comportamento predefinito quando utilizzato come figlio di un CoordinatorLayout utilizzando l'annotazione DefaultBehavior .

comportamenti possono essere utilizzati per realizzare una varietà di interazioni e modifiche di layout aggiuntive che vanno dai cassetti scorrevoli e pannelli di strisciare-eliminabile elementi e pulsanti che si attaccano ad altri elementi mentre si muovono e animare.

I bambini di un CoordinatorLayout possono avere un'ancora. Questo ID vista deve corrispondere a un discendente arbitrario di CoordinatorLayout, ma è possibile che non sia il figlio ancorato stesso o un discendente del figlio ancorato . Questo può essere usato per posizionare viste mobili rispetto ad altri riquadri di contenuto arbitrario .

5

Provare a utilizzare android.support.design.widget.FloatingActionButton e CoordinatorLayout.

E quindi provare questo:

fabView = findViewById(R.id.floating_action_button_id); 
Snackbar.make(fabView, "Hi", Snackbar.LENGTH_LONG).show() 
+9

dovrebbe avere il pulsante mobile come figlio diretto .... ricorda ' – GvSharma

+1

grazie. questo lavoro –

2

è possibile utilizzare per impostare parentLayout - come FAB,

Snackbar.make(parentLayout, R.string.snackbar_text,Snackbar.LENGTH_LONG).setAction(R.string.snackbar_action, myOnClickListener).show(); 
29

Per tutti coloro che cercano fuori per risposta in futuro ..

Coordinatore layout utilizzato come Layout principale del pulsante di azione mobile gestirà automaticamente l'effetto dell'animazione.

Il pulsante di azione mobile ha un comportamento predefinito che rileva le viste di Snackbar aggiunte e anima il pulsante sopra l'altezza dello Snackbar di conseguenza.

Floating Action Button Behavior

<android.support.design.widget.CoordinatorLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/clayout"> 
<android.support.design.widget.FloatingActionButton 
    android:id="@+id/fab_btn" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="bottom|right" 
    android:layout_marginBottom="16dp" 
    android:layout_marginRight="16dp" 
    android:src="@drawable/filter_icon" 
    app:rippleColor="@color/colorGray" 
    app:fabSize="normal" 
    app:borderWidth="0dp"/> 
</android.support.design.widget.CoordinatorLayout> 

Poi il nostro codice Bar in userebbero Coordinatorlayout [qui clayout] come parentlayout come di seguito:

Snackbar.make(clayout, "Click on row to know more details", Snackbar.LENGTH_LONG) 
        .setAction("OK", new View.OnClickListener() { 
         @Override 
         public void onClick(View v) { 

         } 
        }).show(); 
+1

Ma non per i pulsanti o i menu di azione mobili personalizzati. Quindi l'animazione deve essere eseguita manualmente – TPWang

+0

@TPWang concordato ... per cui è necessario sovrascrivere alcuni metodi di comportamento del layout. – Droidwala

Problemi correlati