如何仅从一个片段显示自定义操作栏视图

时间:2015-01-21 07:43:09

标签: android android-fragments android-actionbar

我的应用程序要求只从一个片段(着陆页片段)显示自定义操作栏视图。问题是当用户导航到其他片段时,此操作栏出现。有没有办法在不禁用每个片段的自定义视图的情况下执行此操作?

由于

2 个答案:

答案 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>