Android 是否可以为不同片段中的浮动操作按钮设置不同的操作?
我正在工作或是在一个应用程序中,我在viewpager和浮动动作按钮(fab)中有4个片段。当我点击fab时,会出现3个子选项卡。它们中的每一个都启动了不同的活动,用户可以在其中搜索来自不同片段的数据。有没有可能设置fab,这样当我在第一个片段中单击它时,它会打开一个在这个片段中搜索的活动,onClick inside second-search for second等等。问题是,现在当我在某个片段中单击sub fab时,我也可以从另一个片段中搜索数据,这有点奇怪。我知道这个问题有点奇怪,如果有什么不清楚的地方,我会进一步解释。你们可以在浮动动作按钮的onclick方法中检查当前打开的片段并调用它Android 是否可以为不同片段中的浮动操作按钮设置不同的操作?,android,android-fragments,android-viewpager,floating-action-button,Android,Android Fragments,Android Viewpager,Floating Action Button,我正在工作或是在一个应用程序中,我在viewpager和浮动动作按钮(fab)中有4个片段。当我点击fab时,会出现3个子选项卡。它们中的每一个都启动了不同的活动,用户可以在其中搜索来自不同片段的数据。有没有可能设置fab,这样当我在第一个片段中单击它时,它会打开一个在这个片段中搜索的活动,onClick inside second-search for second等等。问题是,现在当我在某个片段中单击sub fab时,我也可以从另一个片段中搜索数据,这有点奇怪。我知道这个问题有点奇怪,如果有
在
FragmentManager
上调用findFragmentById()
,并确定哪个片段在R.id.frameTitle
容器中。您可以将FAB按钮公开,并在每个片段中实现onClick listener。
您应该重写setUserVisibleHint并将代码放在Resume上,以便getActivity()不会返回null。Fab按钮在不同的片段中将有不同的操作
下面是一个示例,在每个片段中,当您需要Fab click listener时:
@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
}
});
}