Android styles.xml windowNoTitle(ActionBarActivity)

时间:2014-05-17 07:52:20

标签: android android-theme android-styles

我想在我的应用程序中隐藏标题栏(显示活动磁贴的位置)。我这样做是将android:windowNoTitle项设置为true。这适用于API级别为19的设备。我使用运行API级别10的设备对其进行了测试,它只隐藏了通知栏。瓷砖栏仍然显示。

这是我的res/values/styles.xml

<resources>
    <style name="AppBaseTheme" parent="Theme.AppCompat.Light">
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowFullscreen">true</item>
    </style>

</resources>

编辑:我在我的清单中使用AppBaseTheme作为主题。任何其他value-vXX文件夹中没有其他styles.xml文件。

编辑#2:我正在为我的活动延长ActionBarActivity

3 个答案:

答案 0 :(得分:11)

尝试使用此

symbols

删除android前缀!

答案 1 :(得分:1)

我为所有设备使用1个主题,它在API级别8到16上完美运行(因为我只有5个物理设备)。我确定它也在17-19设备上工作。

确保在你的清单文件中(在应用程序部分中),有一行像android:theme =&#34; @ style / AppTheme&#34;

尝试将此用作主题:

<style
    name="AppBaseTheme"
    parent="android:style/Theme.NoTitleBar.Fullscreen"
    >
    <item name="android:windowNoTitle">true</item>

    ...

</style>

删除values-xy文件夹

中的样式/主题

<强> [编辑]

由于AppCompat主题不是全屏,因此根据定义,StatusBar将会消失,而不是TitleBar

如果您不需要AppCompat提供的ActionBar,那么您应该尽快摆脱AppCompat:不要使用unneeded和{{1}来肆虐您的应用事情

例如,我有一个Header Bar和一个Footer Bar,但这些只是我实现自己的RelativeLayouts。
并且仍然可以自由使用整个屏幕表面。

答案 2 :(得分:0)

我在styles.xml中尝试了Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. ,但我得到了:

styles.xml

所以我遵循建议坚持AppCompat主题,并可以使用<resources> <style name="AppTheme" parent="Theme.AppCompat.NoActionBar"> <item name="android:windowNoTitle">true</item> <item name="android:windowFullscreen">true</item> </style> </resources> 中的以下行隐藏状态栏和操作栏:

 new AsyncTask<Void,Void,String>(){

            @Override
            protected String doInBackground(Void... params) {

                myDbHelper2 = new DataBaseHelpername(YourActivity.this.getApplicationContext());
                myDbHelper2= new DataBaseHelpername(YourActivity.this);
                try {

                    myDbHelper2.createDataBase();

                }

                catch (IOException ioe) {
                    throw new Error("Unable to create database");
                }
                try {

                    myDbHelper2.openDataBase();}

                catch (SQLException sqle) {

                    sqle.printStackTrace();

                }
                db = myDbHelper2.getReadableDatabase();
                mCursor= db.rawQuery("SELECT field_translation_fa_value,my_id  FROM name WHERE my_id ="+id+" ;",null);
                mCursor.moveToFirst();
                String ff=mCursor.getString(0);
                return ff;
            }


            @Override
            protected void onPostExecute(String ff) {
                super.onPostExecute(s);
                txtmatnfa.setText(ff);
            }
        }.execute();