如何为选项卡式活动设置不同的操作

时间:2017-03-27 15:43:30

标签: android

所以我做了一个新的标签活动,制作了三个片段和他们的xmls,把一切都做好了,一切正常,一旦我想在浮动动作按钮上工作,我不知道怎么做,基本上我当你点击不同的浮动动作按钮时,试图显示一个不同的对话框,你们都知道每个Tab都有自己的浮动动作按钮,我找不到设置我需要的动作的位置! 请回答我,谢谢

1 个答案:

答案 0 :(得分:0)

每个标签不一定有不同的浮动操作按钮。在不同的选项卡上,可以通过许多不同的方式与fab进行不同的操作。您可以在应用的MainActivity中定义一个fab,并覆盖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的哪个页面上,因此可以使用一个fab而不是为每个片段声明一个fab。上面的fab将在activity_main.xml中声明,而不是在某个片段的布局文件中声明..