首先,改变你的路线
final FloatingActionButton fab = (FloatingActionButton)findViewById(R.id.fabBtn);
至
fabBtn = (FloatingActionButton)findViewById(R.id.fabBtn);
解决方案#1 - 获取视图(如果需要对象)
然后,在你的MainActivity
add getter中FloatingActionButton
,就像你一样
public FloatingActionButton getFloatingActionButton { return fabBtn; }
最后,在你的Fragment
电话中:
FloatingActionButton floatingActionButton = ((MainActivity) getActivity()).getFloatingActionButton();
和
if (floatingActionButton != null) { floatingActionButton.hide(); }
要么
if (floatingActionButton != null) { floatingActionButton.show(); }
解决方案#2 - 添加两个方法MainActivity
(如果只需要特定的方法,比如show()
/ hide()
)
public void showFloatingActionButton() { fabBtn.show(); }; public void hideFloatingActionButton() { fabBtn.hide(); };
在你Fragment
隐藏的电话中:
((MainActivity) getActivity()).hideFloatingActionButton();
或显示:
((MainActivity) getActivity()).showFloatingActionButton();
注意
如果您使用多个Activity
,则必须检查它是否正确Activity
:
if (getActivity() instanceof MainActivity) { getActivity().yourMethod(); // your method here }