2014-09-16 5 views
35

У меня разные Activities в моем приложении, и во всех них я не хочу Action Bar. Я не могу найти, как отключить его. Я попытался найти атрибут, чтобы применить его к main_activity.xml, но до сих пор я ничего не нашел. Может кто-нибудь мне помочь?Android Активность без ActionBar

ответ

55

Ха-ха, я застрял в этой точке некоторое время назад, так что я рад, что могу помочь вам с решением, который работал для меня по крайней мере :)

То, что вы хотите сделать, это определить новый стиль в пределах значений/styles.xml, так это выглядит, как этот

<resources> 
    <style name = "AppTheme" parent = "android:Theme.Holo.Light.DarkActionBar"> 
     <!-- Customize your theme here. --> 
    </style> 

    <style name = "NoActionBar" parent = "@android:style/Theme.Holo.Light"> 
     <item name = "android:windowActionBar">false</item> 
     <item name = "android:windowNoTitle">true</item> 
    </style> 

</resources> 

только стиль NoActionBar является для вас интересным. В конце концов вы должны установить как тема вашего приложения в AndroidManifest.xml, так это выглядит, как этот

<application 
    android:allowBackup = "true" 
    android:icon = "@drawable/ic_launcher" 
    android:label = "@string/app_name" 
    android:theme = "@style/NoActionBar" <!--This is the important line--> 
    > 
    <activity 
    [...] 

Я надеюсь, что это помогает, если нет, то дайте мне знать.

Джона

+2

спасибо, что мне очень помогли :) – Lutscha

+2

Это не помогло, использовалось http://stackoverflow.com/questions/29790070/upgraded-to-appcompat-v22-1-0-and-now-getting- illegalargumentexception-appcompa вместо –

2

Я попытаюсь показать, что это так просто, как я могу:

DECLARE ПОЛНОЭКРАННОЙ АКТИВНОСТЬ ANDROID MAINIFEST файл:

<activity 
      android:name=".GameActivity" 
      android:label="@string/title_activity_game" 
      android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> 

Сейчас в Android студии (если вы используете его) откройте файл Activity Activity (в моем примере activity_game.xml) в дизайнере и выберите тему (над мобильным телефоном в дизайнере нажмите кнопку с небольшим кружком), а затем выберите Темы Mainfest на левой стороне, а затем NoTitleBar.Fullscreen.

Надеюсь, это поможет!

+0

Вы можете использовать android: theme = "@ style/Theme.AppCompat.Light.NoActionBar" для AppCompat. – atablash

51

Существует несколько способов сделать это.

1) Изменение темы в Android Manifest

Ниже элемента приложения, вы найдете тему тег. Заменить его с этим -

android:theme="@android:style/Theme.NoTitleBar" 

Если вы используете AppCompat, используйте @android:style/Theme.AppCompat.NoActionBar.

Это установит тему для всех видов деятельности. Если вам не нужна панель действий в конкретной актив- ности, а затем установить тему в контейнере деятельности, т.е.

<activity android:theme="@android:style/Theme.NoTitleBar" ...> 

Вы также можете установить android:theme="@android:style/Theme.NoTitleBar" тему в стилях и использовать его в дальнейшем.


2) Создание пользовательской темы

Добавить это в res/values/styles.xml

<style name="NoActionBar" parent="@android:style/Theme.Holo.Light"> 
    <item name="windowActionBar">false</item> 
    <item name="android:windowNoTitle">true</item> 
</style> 

, а затем установить его в качестве темы вашей деятельности в манифесте:

<activity android:theme="@style/NoActionBar" ... /> 

3) Динамически Remov е Бар Действие

Поместите этот код в onCreate методе перед установкой Просмотр содержимого -

getWindow().requestFeature(Window.FEATURE_ACTION_BAR); 
getActionBar().hide(); 

Если вы используете использование библиотеки поддержки getSupportActionBar().

+0

Это не помогло, вместо этого использовалось http://stackoverflow.com/questions/29790070/upgraded-to-appcompat-v22-1-0-and-now-getting-illegalargumentexception-appcompa. –

+0

Это потому, что вы будете использовать appcompat. Спасибо, что указали это. Я внес изменения. – Confuse

4

Вы также можете изменить наследование от ActionBarActivity к Activity, как указано here.

UPDATE

Хорошим решением является here:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    getWindow().requestFeature(Window.FEATURE_ACTION_BAR); 
    super.onCreate(savedInstanceState); 
    getSupportActionBar().hide(); 
    setContentView(R.layout.activity_main); 
} 
3

Учитывая все вывешивает старые способы сокрытия ActionBar здесь правильный способ ее реализации в рамках стилей для библиотеки поддержки AppCompat. Который я настоятельно предлагаю двигаться к, если вы еще этого не сделали.

Просто удаления ActionBar

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
</style> 

Если вы используете AppCompat библиотеки поддержки, это самый простой и рекомендуемый способ сокрытия ActionBar, чтобы сделать полный экран или начать реализацию на панели инструментов в ваших макетов.

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <!-- Your Toolbar Color--> 
    <item name="colorPrimary">@color/primary</item> 

    <!-- colorPrimaryDark is used for the status bar --> 
    <item name="colorPrimaryDark">@color/primary_dark</item> 

    <!-- colorAccent is used as the default value for colorControlActivated, 
    which is used to tint widgets --> 
    <item name="colorAccent">@color/accent</item> 

    <!-- You can also set colorControlNormal, colorControlActivated 
    colorControlHighlight, and colorSwitchThumbNormal. --> 
</style> 

Затем изменить вашей панель цвета

<android.support.v7.widget.Toolbar 
    android:id=”@+id/my_awesome_toolbar” 
    android:layout_height=”wrap_content” 
    android:layout_width=”match_parent” 
    android:minHeight=”?attr/actionBarSize” 
    android:background=”?attr/primary” /> 

Последнего примечание: Ваш класс активности должен распространяться AppCompatActivity

public class MainActivity extends AppCompatActivity { 

<!--Activity Items --> 

} 
+0

Спасибо, Евгений Х. Хорошо, я попробовал код менять цвета со случайными значениями. Он работает, поскольку он может работать без цветовых определений. Из-за NoActionBar. – CoolMind

+0

@CoolMind Вы правы. Я просто добавил некоторые типичные атрибуты стилей с AppCompat. Я добавлю описания в ответ. –

+0

Eugene, да, переход от ActionBar к ToolBar - хорошая идея. – CoolMind

2

Если вы используете AppCompat, объявляет вашу деятельность в AndroidManifest.xml в следующем:

<activity 
    android:name=".SomeActivity" 
    ... 
    android:theme="@style/Theme.AppCompat.Light.NoActionBar" /> 
1

Если вы хотите большую часть своей деятельности, чтобы иметь панель действий вы, вероятно, унаследует базовую тему от заданного по умолчанию (это автоматически генерируется Android Studio по умолчанию):

<!-- Base application theme. --> 
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <!-- Customize your theme here. --> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="colorAccent">@color/colorAccent</item> 
    </style> 

А затем добавить специальный тема для вашего бара меньше активности:

<style name="AppTheme.NoTitle" parent="AppTheme"> 
     <item name="windowNoTitle">true</item> 
     <item name="windowActionBar">false</item> 
     <item name="actionBarTheme">@null</item> 
    </style> 

для меня, установки actionBarTheme в @null была решением.

Наконец настроить активность в вашем файле манифеста:

<activity ... android:theme="@style/AppTheme.NoTitle" ... > 
0

создать новый стиль с любым именем, в моем случае «Theme.Alert.NoActionBar»

<style name="Theme.Alert.NoActionBar" parent="Theme.AppCompat.Dialog"> 
    <item name="windowNoTitle">true</item> 
    <item name="windowActionBar">false</item> 
</style> 

установить его родителя, как " Theme.AppCompat.Dialog "как в приведенном выше коде

open AndoridManifest.xml и настройте действие, которое вы хотите показать как диалог оповещения, как этот

<activity 
     android:excludeFromRecents="true" 
     android:theme="@style/Theme.Alert.NoActionBar" 
     android:name=".activities.UserLoginActivity" /> 

В моем приложении я хочу показать свою активность в качестве логина оповещений, это коды, которые я использовал. Надеюсь, что это работает для вас!!!

Смежные вопросы