隐藏ActionBar会在顶部留下空白区域

时间:2014-07-25 13:29:52

标签: android

我想在我的一个片段中隐藏ActionBar但是当我打电话

((MainActivity) getActivity()).getActionBar().hide();

在片段上我得到类似的东西

enter image description here

如何删除该空白区域并使其“全屏” - 我希望显示通知栏

[编辑:

最低SDK不是4.0,但是当我启动这个应用程序时,我将其设置为2.3,我必须使用appcompant

MainActivity xml

<android.support.v4.widget.DrawerLayout     xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg"
tools:context="com.mariusz.myapp.MainActivity" >

<!--
     As the main content view, the view below consumes the entire
     space available using match_parent in both dimensions.
-->

<FrameLayout
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingTop="?android:attr/actionBarSize" />

<!--
     android:layout_gravity="start" tells DrawerLayout to treat
     this as a sliding drawer on the left side for left-to-right
     languages and on the right side for right-to-left languages.
     If you're not building against API 17 or higher, use
     android:layout_gravity="left" instead.
-->
<!--
     The drawer is given a fixed width in dp and extends the full height of
     the container.
-->

<fragment
    android:id="@+id/navigation_drawer"
    android:name="com.mariusz.myapp.NavigationDrawerFragment"
    android:layout_width="@dimen/navigation_drawer_width"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:paddingTop="?android:attr/actionBarSize" />

</android.support.v4.widget.DrawerLayout>

gallery fragment 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" >

<android.support.v4.view.ViewPager
            android:id="@+id/gallery_pager"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >

        </android.support.v4.view.ViewPager>

</LinearLayout>

[编辑解决方案]

最佳解决方案是创建其他活动以显示没有操作栏的图像

4 个答案:

答案 0 :(得分:2)

您应该构建活动以使其覆盖操作栏:以下是您可能使用的主题示例:

<resources>
    <!-- the theme applied to the application or activity -->
    <style name="CustomActionBarTheme"
           parent="@android:style/Theme.Holo">
        <item name="android:windowActionBarOverlay">true</item>
    </style>
</resources>

有关overlaying the Actionbar的更多信息。此外,如果您不打算始终隐藏操作栏,则可能需要构建布局以在可见时对其进行说明。有关如何执行此操作,请参阅to this question。您也可以考虑将您的片段重构为一个单独的活动,并立即以全屏模式启动它,使用&#34; NoTitlebarTheme&#34;这项活动。

答案 1 :(得分:0)

仅在清单文件

中的活动android:theme="@android:style/Theme.Black.NoTitleBar"中使用此行

在您的片段调用的活动类中添加getActionBar().hide();,并在getActionBar().show();中使用其他一些片段。

答案 2 :(得分:0)

在您对create方法的活动中添加以下代码行

requestWindowFeature(Window.FEATURE_NO_TITLE);

答案 3 :(得分:0)

我遇到了同样的问题,我的问题是在XML中包含fitsSystemWindows标记