9

Каков правильный способ удалить панель действий внутри действия?Holoeverywhere: как программно удалить во время выполнения панель действий из активности

Моя активность продолжается org.holoeverywhere.app.Activity

Я пользовательский класс приложений, который расширяет org.holoeverywhere.app.Application и при запуске Execs этот статический код:

ThemeManager.setDefaultTheme(ThemeManager.DARK); 
ThemeManager.map(ThemeManager.DARK, R.style.Holo_Demo_Theme); 
ThemeManager.map(ThemeManager.LIGHT, R.style.Holo_Demo_Theme_Light); 
ThemeManager.map(ThemeManager.MIXED, R.style.Holo_Demo_Theme_Light_DarkActionBar); 
ThemeManager.map(ThemeManager.DARK | ThemeManager.FULLSCREEN, R.style.Holo_Demo_Theme_Fullscreen); 
ThemeManager.map(ThemeManager.LIGHT | ThemeManager.FULLSCREEN, R.style.Holo_Demo_Theme_Light_Fullscreen); 
ThemeManager.map(ThemeManager.MIXED | ThemeManager.FULLSCREEN, R.style.Holo_Demo_Theme_Light_DarkActionBar_Fullscreen); 

в моя деятельность:

protected void onCreate(Bundle savedInstanceState) { 

    ThemeManager.removeTheme(this); 
    setTheme(ThemeManager.DARK | ThemeManager.FULLSCREEN); 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_login); 

если добавить requestWindowFeature(Window.FEATURE_NO_TITLE) в коде, на android 4.1.1 -table- баре удаляется пока на трубке -android 2.3.3 - панель не удаляется.

Перед введением holoeverywhere все работало нормально только с requestWindowFeature(Window.FEATURE_NO_TITLE).

Что является правильным способом удаления во время выполнения в ActionBar в holoeverywhere? (я хочу сделать это во время выполнения, поскольку пользователь имеет возможность установить раскладку темно- или светло, с DARK по умолчанию)

ответ

23

См. Флаг ThemeManager.NO_ACTION_BAR. Или просто позвоните

getSupportActionBar().hide(); 
+0

Спасибо Prototik, он работает. – Maxj

+0

Он также работает с setTheme (ThemeManager.DARK | ThemeManager.NO_ACTION_BAR); Я использовал ThemeManager.FULLSCREEN вместо NO_ACTION_BAR – Maxj

2

Вы можете сделать это программно:

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Window; 
import android.view.WindowManager; 

public class ActivityName extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     // remove title 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
      WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     setContentView(R.layout.main); 
    } 
} 

Или вы можете это сделать через ваш AndroidManifest.xml файл:

<activity android:name=".ActivityName" 
    android:label="@string/app_name" 
    android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"> 
</activity> 

Я добавил несколько строк, так что вы можете показать его в полноэкранном режиме, как это кажется, что это то, что вы хотите.

+0

спасибо за ответ, но в вашем примере вы не используете holoeverywhere библиотеку, но «чистый» Android SDK ... – Maxj

+0

Ой извините я oculdn't помочь вам. Я ответил тем, что знал. –

+0

С чистым SDK все работает. После того, как я представил библиотеку, у меня есть эта проблема. Я думаю, что это «глупая» проблема, но в библиотеке нет документации вообще! – Maxj