我的应用程序要求只从一个片段(着陆页片段)显示自定义操作栏视图。问题是当用户导航到其他片段时,此操作栏出现。有没有办法在不禁用每个片段的自定义视图的情况下执行此操作?
由于
答案 0 :(得分:2)
对于这个问题,只显示一个片段的动作栏而不显示所有其他片段,解决方案可能非常简单:
在托管片段的活动中:
@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
}
}
答案 1 :(得分:0)
好吧,我只想提出建议。为什么不删除所有片段的操作栏,只是通过布局自定义操作栏创建单个片段(着陆页)?
要将ActionBar移除到所有片段,请将此代码添加到标记:
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>