2017-03-27 3 views
0

Also habe ich eine neue Tabbed-Aktivität gemacht, die drei Fragmente und ihre Xmls erstellt, alles in Ordnung gebracht, alles funktioniert und sobald ich an der Floating-Action-Schaltfläche arbeiten wollte, Ich wusste nicht, wie es geht, im Grunde versuche ich, einen anderen Dialog zu zeigen, wenn du auf die verschiedenen Floating-Action-Buttons klickst, ihr wisst, dass jedes Tab seinen eigenen Floating-Button hat, ich konnte nicht finden, wo ich es einstellen soll die Aktion, die ich brauche !! Bitte antworten Sie mir, dankeWie kann ich eine andere Aktion für eine Aktivität mit Registerkarten festlegen?

+0

Wenn Sie zeigen, was Sie bisher mit Code und Screenshots haben, helfen Sie Leuten, Ihre Frage richtig zu beantworten –

Antwort

1

Jede Registerkarte hat nicht unbedingt eine andere schwebende Aktionstaste. Es gibt viele verschiedene Möglichkeiten, verschiedene Dinge mit Fab auf verschiedenen Tabs zu tun. Sie können ein fab in MainActivity Ihrer App definieren und überschreiben Sie die Methode onPageChangeListener() Ihres Viewpager wie folgt.

//In MainActivity's onCreate() 
int fabState = 0; 
FloatingActionButton fab; 

//In onCreate method instantiate fab by using findViewById 
fab = (FloatingActionButton) findViewBtId(R.id.your_fab_id); 

viewPager.setOnPageChangeListener(new OnPageChangeListener(){ 

    @Override 
    public void onPageScrollStateChanged(int state) { 
    //Called when the scroll state changes. 
    } 

    @Override 
    public void onPageScrolled(int position, 
    float positionOffset, int positionOffsetPixels) { 
    } 

    @Override 
    public void onPageSelected(int position) { 
    //This method will be invoked when a new page becomes selected. 
    fabState = position; 
    }}; 

fab.setOnclickListener(new OnClickListener(){ 

if(fabState==0){ 
//write actions related to page one 
} 
else if(fabState ==1){ 
//write actions related to page two 
} 
else if(fabState==2){ 
//write actions related to page three 
} 
else{} 

}); 

So, auf diese Weise durch die Deklaration einer Variablen namens fabState Sie können speichern, die Seite von viewpager Sie sind und daher die Verwendung eines einzigen fab nicht erklären mehrere fabs eine für jedes Fragment machen. Die obige Fab wird in activity_main.xml und nicht in der Layout-Datei eines Fragments deklariert.

+0

danke, und was sollte Ich mache, wenn ich 3 Fragmente Layouts und 3 Java-Klassen habe? und ich beabsichtige, Aktionen für diese drei schwimmenden Aktionen Tasten zu schreiben, ich hoffe, du hast mich verstanden .. –

+0

@NefissaKhedher Der obige Code ist für das gleiche. Ihr ViewPager ändert die Seiten (Fragmente) und dieser Code verfolgt Änderungen, welche Fragmente gerade angezeigt werden. Wenn Sie nichts über Viewpager wissen, würde ich Ihnen empfehlen, [diesen Leitfaden] zu gehen (https://guides.codepath.com/android/ViewPager-with-FragmentPagerAdapter) :) –

+0

Vielen Dank, ich werde es jetzt überprüfen ! danke –

Verwandte Themen