是否可以在不同的片段中为浮动操作按钮设置不同的操作?
Is it possible to set different actions for floating action button in differet fragments?
我正在工作或我在 viewpager 和浮动操作按钮 (fab) 中有 4 个片段的应用程序。当我点击 fab 时,会出现 3 个 subfab。他们每个人都开始不同的活动,用户可以在其中搜索来自不同片段的数据。是否可以设置 fab 以便如果我在第一个片段中单击它,它会打开一个 activity 用于在该片段内搜索,在第二个内单击 - 搜索第二个等等。问题是现在,当我在某个片段中时单击 sub fab,我也可以从另一个片段中搜索数据,这有点奇怪。我知道问题有点奇怪,如果有什么不清楚我会进一步解释
您可以查看当前打开哪个fragment的浮动操作按钮的onclick方法并调用它。
在 FragmentManager
上调用 findFragmentById()
并确定哪个片段在您的 R.id.frameTitle
容器中。
您可以制作 FAB 按钮 public 并在每个片段中实现 onClick 侦听器。
您应该覆盖 setUserVisibleHint 并将您的代码放在 onResume 中,这样 getActivity() 就不会 return 为空。 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
}
});
}
我正在工作或我在 viewpager 和浮动操作按钮 (fab) 中有 4 个片段的应用程序。当我点击 fab 时,会出现 3 个 subfab。他们每个人都开始不同的活动,用户可以在其中搜索来自不同片段的数据。是否可以设置 fab 以便如果我在第一个片段中单击它,它会打开一个 activity 用于在该片段内搜索,在第二个内单击 - 搜索第二个等等。问题是现在,当我在某个片段中时单击 sub fab,我也可以从另一个片段中搜索数据,这有点奇怪。我知道问题有点奇怪,如果有什么不清楚我会进一步解释
您可以查看当前打开哪个fragment的浮动操作按钮的onclick方法并调用它。
在 FragmentManager
上调用 findFragmentById()
并确定哪个片段在您的 R.id.frameTitle
容器中。
您可以制作 FAB 按钮 public 并在每个片段中实现 onClick 侦听器。 您应该覆盖 setUserVisibleHint 并将您的代码放在 onResume 中,这样 getActivity() 就不会 return 为空。 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
}
});
}