2017-03-27 121 views
0

因此,我制作了一个新的选项卡活动,将三个片段和它们的xmls放在一起,一切正常,一旦我想要处理浮动操作按钮,我不知道该怎么做,基本上我试图在点击不同的浮动动作按钮时显示不同的对话框,你都知道每个Tab都有自己的浮动动作按钮,我找不到要设置的位置我需要的行动! 请回答我,谢谢如何为选项卡式活动设置不同的动作

+0

显示目前为止您使用的代码和屏幕截图,将帮助人们正确回答您的问题 –

回答

1

每个选项卡不一定有不同的浮动操作按钮。可以有许多不同的方式在不同的选项卡上使用fab来完成不同的事情。您可以在您的应用程序的MainActivity中定义一个晶圆厂,并像这样覆盖viewpager的方法onPageChangeListener()。

//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{} 

}); 

所以,这样的声明名为fabState变量,你可以存储在你是哪viewpager的页面,从而利用一个单一的工厂,而不是定义多个晶圆厂为每个片段。上面的工厂将在activity_main.xml中声明,而不是在某个片段的布局文件中。

+0

谢谢,以及应该怎么做我做,如果我有3个片段布局和3个Java类?我打算为这三个浮动动作按钮编写动作,我希望你能理解我.. –

+0

@NefissaKhedher上面的代码是相同的。您的ViewPager将更改页面(片段),并且此代码会跟踪当前显示哪个片段的更改。如果你对viewpager一无所知,我会建议你通过[本指南](https://guides.codepath.com/android/ViewPager-with-FragmentPagerAdapter):) –

+0

谢谢,我将立即检查它!感谢 –

相关问题