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