我对我的应用程序要求仅从一个片段(着陆页片段)显示自定义操作栏视图。问题是当用户导航到其他片段时,此操作栏出现。有没有办法做到这一点,而不禁用每个片段的自定义视图?如何仅显示一个片段的自定义操作栏视图
谢谢
我对我的应用程序要求仅从一个片段(着陆页片段)显示自定义操作栏视图。问题是当用户导航到其他片段时,此操作栏出现。有没有办法做到这一点,而不禁用每个片段的自定义视图?如何仅显示一个片段的自定义操作栏视图
谢谢
对于这个问题,只显示一个片段的操作栏而不显示所有其他片段,解决方案可能非常简单:
在你的活动承载您的片段:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
... ...
// for API >= 11
getActionBar.hide();
// for API < 11
getSupportActionBar().hide();
... ...
}
然后在你要显示的片段动作条:
@Override
public void onAttach(Activity activity){
activity.getActionBar().show(); //getSupportActionBar() for API<11
}
@Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
if (hidden) {
getActivity().getActionBar().hide(); //getSupportActionBar() for API<11
} else {
getActivity().getActionBar().show(); //getSupportActionBar() for API<11
}
}
完美的工作! – 2015-01-24 09:28:25
嗯,我只是想建议。为什么不去除所有片段的操作栏,并通过布局创建一个带有自定义操作栏的单个片段(着陆页)?
要删除动作条的所有片段,添加以下代码标记:
android:theme="@android:style/Theme.Light.NoTitleBar"
通过XML为您的着陆页创建操作栏布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rlMain"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true" >
<RelativeLayout
android:id="@+id/rlHeaderMain"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_alignParentTop="true"
android:background="#000000"
android:clipChildren="false"
android:clipToPadding="false"
android:padding="5dp" >
</RelativeLayout>
使用“getActivity()getActionbar() .hide()'在导航到您不想显示的片段时隐藏操作栏。 – Xcihnegn 2015-01-21 08:11:04
但我必须在除着陆页片段之外的所有片段中写入此内容。我确定有更好的方法。 – 2015-01-21 08:15:32
仅用于登陆片段,请在onDetach中使用''getActivity()。getActionbar()。show()''和''getActivity()。getActionbar()。hide()''。 – Xcihnegn 2015-01-21 08:45:22