是否可以为不同的片段中的浮动操作按钮设置不同的操作?

时间:2015-11-04 07:33:55

标签: android android-fragments android-viewpager floating-action-button

我在工作或应用程序中我在viewpager和浮动操作按钮(fab)中有4个片段。当我点击fab时,会出现3个子底座。他们每个人都开始不同的活动,用户可以从不同的片段中搜索数据。是否有可能设置fab,以便如果我在第一个片段中点击它,它将打开一个活动以在此片段内搜索,onClick内部第二个 - 搜索第二个等等。问题是现在点击子工厂,而我在一些片段中,我也可以从另一个片段中搜索数据,这有点奇怪。我明白问题有点奇怪,如果事情不清楚,我会进一步解释

2 个答案:

答案 0 :(得分:9)

您可以将FAB按钮公开,并在每个片段中实现onClick侦听器。 您应该覆盖 setUserVisibleHint 并将代码 onResume 放置,以便getActivity()不会返回null。 Fab按钮在不同的片段中会有不同的动作。

这是一个例子,当你想要Fab点击监听器时,在每个片段中:

@Override
public void setUserVisibleHint(boolean visible)
{
    super.setUserVisibleHint(visible);
    if (visible && isResumed())
    {            
        onResume();
    }
}

 @Override
public void onResume()
{
    super.onResume();
    if (!getUserVisibleHint())
    {
        return;
    }

    MainActivity mainActivity = (MainActivity)getActivity();
    mainActivity.fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
          //Do what you want
        }
    });
}

答案 1 :(得分:2)

您可以检查浮动操作按钮的onclick方法当前打开哪个片段并调用它。

findFragmentById()上致电FragmentManager,确定R.id.frameTitle容器中的哪个片段。