无法仅使用xml样式隐藏导航栏

时间:2013-08-21 07:18:50

标签: android user-interface styles navigationbar

我需要在Os 4.0+中隐藏导航栏(带后退按钮的导航栏)。我试图这样做而不诉诸代码。这是我的styles.xml资源文件:

        <?xml version="1.0" encoding="utf-8"?>
        <resources>
            <style name="AppBaseTheme" parent="@android:style/Theme.Holo.Light">
            </style>


            <style name="AppTheme" parent="AppBaseTheme">
            </style>


            <style name="FullScreen" parent="@android:style/Theme.NoTitleBar.Fullscreen">
            </style>

        </resources>

这是我的清单:

        <?xml version="1.0" encoding="utf-8"?>
        <manifest xmlns:android="http://schemas.android.com/apk/res/android"
            package="xxx.xxx.xxx.xxx"
            android:versionCode="1"
            android:versionName="1.0" >

            <uses-sdk
                android:minSdkVersion="11"
                android:targetSdkVersion="17" />

            <application
                android:allowBackup="true"
                android:icon="@drawable/ic_launcher"
                android:label="@string/app_name"
                android:theme="@style/AppTheme" >
                <activity
                    android:name="xxx.xxx.xxx.xxx.MainActivity"
                    android:configChanges="orientation|keyboardHidden|screenSize"
                    android:label="@string/app_name"
                    android:theme="@style/FullScreen" >
                    <intent-filter>
                        <action android:name="android.intent.action.MAIN" />
                        <category android:name="android.intent.category.LAUNCHER" />
                    </intent-filter>
                </activity>
            </application>

        </manifest>

我正在尝试将Holo light设置为全局主题,而全屏主题仅用于主要活动。以上文件不起作用,我发现的唯一方法就是在我的活动onCreate中执行此操作:

mainView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

xml-only方法有什么问题吗?

PS:我知道这在3.x中是不可能的,但是我在4.1模拟器中对此进行测试,我可以使用setSystemUiVisibility隐藏导航栏。

1 个答案:

答案 0 :(得分:2)

最后,似乎只使用XML是不可能的。甚至在某些平板电脑(如三星Galaxy Tab)中使用代码也无法隐藏导航栏。