我试图只在一个片段上显示我的FloatingActionButton,并隐藏在其余片段中。我尝试了多个答案,但没有任何效果。我尝试了以下解决方案:
Hide a Floating Action Button of another Layout
但是它不起作用。我试着在两个片段上添加按钮,一个显示FAB,一个隐藏FAB,这是有效的,但是一旦我删除按钮,它就不会自动显示。下面是我的代码:
隐藏_片段.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>
显示_片段.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>
HiddenFragment.java:
public class HiddenFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if (container == null) {
return null;
}
View view = inflater.inflate(R.layout.hidden_fragment, container, false);
final FloatingActionButton fab = ((MainActivity) getActivity()).getFloatingActionButton();
if (fab != null) {
((MainActivity) getActivity()).hideFloatingActionButton();
}
return view;
}
}
ShownFragment.java:
public class ShownFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if (container == null) {
return null;
}
View view = inflater.inflate(R.layout.hidden_fragment, container, false);
final FloatingActionButton fab = ((MainActivity) getActivity()).getFloatingActionButton();
if (fab != null) {
((MainActivity) getActivity()).showFloatingActionButton();
}
return view;
}
}
在我的www.example.com中MainActivity.java我有这样的话:
public FloatingActionButton getFloatingActionButton() {
return fab;
}
public void showFloatingActionButton() {
fab.show();
}
public void hideFloatingActionButton() {
fab.hide();
}
我目前的方法不起作用。当我启动应用程序时,启动的第一个片段是HiddenFragment。但当我转到ShownFragment时,FAB并没有出现。我尝试了一种不同的方法,我给每个片段添加了一个按钮,并给按钮添加了showFloatingActionButton()和hideFloatingActionButton(),这样就起作用了。有人知道我做错了什么吗?
2条答案
按热度按时间91zkwejq1#
要在ViewPager中显示/隐藏带片段的FloatingActionButton,只需使用
ViewPager.OnPageChangeListener
并在所需位置显示FloatingActionButton,并在所需位置隐藏它。这将出现在“活动:
ix0qys7i2#
隐藏浮动按钮从其他片段。它在我的情况下工作。
在www.example.com中MainActivity.java添加:
在第二个片段中创建视图: