【问题标题】:Is it possible to set different actions for floating action button in differet fragments?是否可以为不同片段中的浮动操作按钮设置不同的操作?
【发布时间】:2015-11-04 07:33:55
【问题描述】:
我正在工作或一个应用程序,其中我在 viewpager 和浮动操作按钮 (fab) 中有 4 个片段。当我点击晶圆厂时,会出现 3 个子晶圆厂。他们每个人都开始不同的活动,用户可以从不同的片段中搜索数据。是否可以设置 fab 以便如果我在第一个片段中单击它,它将打开一个在该片段中搜索的活动,在第二个片段中单击 onClick - 搜索第二个等等。问题是现在单击子当我在某个片段中时,我也可以从另一个片段中搜索数据,这有点奇怪。我知道问题有点奇怪,如果有不清楚的地方我会进一步解释
【问题讨论】:
标签:
android
android-fragments
android-viewpager
floating-action-button
【解决方案1】:
您可以公开 FAB 按钮并在每个片段中实现 onClick 侦听器。
您应该重写 setUserVisibleHint 并将您的代码 onResume 以便 getActivity() 不会返回 null。 Fab 按钮在不同的 Fragment 中会有不同的操作。
这是一个示例,当您需要 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
}
});
}
【解决方案2】:
您可以在浮动操作按钮的onclick方法中查看当前打开的片段并调用它。
在FragmentManager 上调用findFragmentById() 并确定哪个片段在您的R.id.frameTitle 容器中。