2015-05-26 11 views
25

Ich habe diese Bibliothek verwendet https://github.com/futuresimple/android-floating-action-button. Wie kann ich das Bild der Haupttaste ändern? Ich möchte das Tastenbild direkt nach der Auswahl einer der kleineren Tasten ändern.Bild ändern Floating Action Button Android

+0

Ich habe das gleiche Problem und alle schnappen meine Haare. Danke für diese http://stackoverflow.com/a/35697105/5228412 es funktioniert gut für mich und wünsche für andere, die hier erreichen. –

Antwort

-1

Fügen Sie die Eigenschaft

fab:fab_icon="@drawable/fab_expand" 

im xml, wo Sie die Floating-Aktionsmenü initialisiert.

+0

Hey diese Eigenschaft existiert nicht! fab: fab_icon – Jorgesys

+0

Diese Antwort war für benutzerdefinierte Bibliothek Futuresimple, nicht für Standard FAB –

0

mit dieser Bibliothek Leider können Sie das Symbol aus dem Menü ändern (siehe Ausgaben aus dieser Bibliothek von mehr info)

Deshalb habe ich diese Bibliothek ließ eine Art und Weise flexibler man verwenden! Es ist ursprünglich eine Gabel, aber es ist jetzt weiter fortgeschritten;)

Hier ist die link

Genießen ist!

0

Ich hatte das gleiche Problem und es gelang mir, meine eigene Lösung zu erstellen. Vielleicht findet es jemand anderes auch nützlich. Ich habe die komplette Antwort auf eine andere Frage (How to set icon to getbase FloatingActionsMenu) gepostet, aber dieser hier gepostete Teil ist relevant für die Frage beim dynamischen Ändern der Hauptmenütaste Bild/Bild, wenn einer der Unterknöpfe gewählt wird. In diesem Fall müssen Sie die Antwort aus der "verknüpften Frage" und die Antwort unten kombinieren.

Um das Symbol in der Menütaste zu ändern, wenn Sie eine floatingActionButton wählen kann wie folgt realisiert werden:

erstellen Menü-Taste in XML-Datei erstellen Schaltfläche floating (n) auf .java-Datei (programmatisch) Menütaste (Farbtaste, Farbe, gedrückte Taste und Bild) einstellen. Dann füge einfach alle Knöpfe zur Menütaste hinzu. Sie können die Animation der Menüschaltfläche auch deaktivieren, indem Sie einfach den Code in der Klasse FloatingActionsMenu auskommentieren.

Dann jedes Mal, wenn Sie auf eine Schaltfläche, Probe erstellen:

final FloatingActionButton actionA = new FloatingActionButton(getBaseContext()); 
     actionA.setTitle("Familie"); 
     actionA.setIcon(R.drawable.world_map); 
     actionA.setSize(FloatingActionButton.SIZE_MINI); 
     actionA.setColorNormalResId(R.color.red); 
     actionA.setColorPressedResId(R.color.black_semi_transparent); 
     actionA.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       menuMultipleActions.setMenuButton(R.drawable.icon, R.color.red_transparent, R.color.black_semi_transparent); 
       Toast.makeText(MainMapView.this, "Action Description", Toast.LENGTH_SHORT).show(); 
       ((FloatingActionsMenu) findViewById(R.id.multiple_actions)).collapse(); 
       return; 
      } 
     }); 

Siehe Antwort auf dem Link gepostet, wie die Klassen konfigurieren und die Menü-Taste und Floating-Taste (n) definieren.

So ist der wichtige Teil hier zu bemerken ist:

menuMultipleActions.setMenuButton(R.drawable.icon, R.color.red_transparent, R.color.black_semi_transparent); 

Diese Methode, die Sie in der FloatingActionsMenu Klasse hinzukommen müssen. Einfach rufen Sie die Methode danach auf jedem FloatingActionButton auf den Sie das Bild aktualisieren möchten.

Weitere Informationen finden Sie auf dem Link, den ich gepostet habe. Wenn Sie also auf eines der FloatingActionButtons klicken.

Im Moment wird die Farbe auf der Menüschaltfläche nicht korrekt aktualisiert, aber ich arbeite daran, wenn ich eine Lösung finde, werde ich die Antwort hier auch aktualisieren. Hoffe das hilft, fröhliche Codierung.

+0

Gibt es einen Grund für die -1, oder nur zum Spaß? Jemand hat diese Lösung versucht und es hat nicht für ihn funktioniert? – Thanos

+0

Ich habe -1 gewählt, weil es bei mir nicht funktioniert hat. In der Tat, einige Zeit nachdem ich gewählt habe, habe ich versucht, es zu widerrufen, weil es nicht cool ist, aber ich durfte nicht ... Also, Entschuldigung: / –

13

Sie dies in Ihrem .XML verwenden:

android:src="@drawable/icon" // change backgroung icon 
app:backgroundTint="@color/icons" // change background color 

Verwendung dieses in Code:

mFloatingActionButton.setImageResource(R.drawable/icon2); 
2

Was ich verwende wie folgt

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab_btn); 

// State 1 -on 

fab.setImageDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.fab_on)); 

// State 2 - off 

fab.setImageDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.fab_off)); 

Hope this helfen Sie

0

Ich konfrontiert gleich Ausgabe vor kurzem habe ich versucht, mit der Option folgende

fab:fab_icon="@drawable/icon" 

und

android:src="@drawable/icon" // change backgroung icon 

sogar versucht, programmatisch

fab_menu_btn.setImageResource(); 

Nichts funktionierte.

Lösung: In der App build.gradle Datei

ersetzen
compile 'com.getbase:floatingactionbutton:1.10.0' 

zu

compile 'com.github.toanvc:floatingactionmenu:0.8.9' 

In .xml-Datei Verwendung:

  <toan.android.floatingactionmenu.FloatingActionsMenu 
      </toan.android.floatingactionmenu.FloatingActionsMenu> 

In Aktivität Datei:

 floatingActionsMenu.setIcon(getResources().getDrawable(R.mipmap.icon)); 

Dank

Verwandte Themen