У меня разные Activities
в моем приложении, и во всех них я не хочу Action Bar
. Я не могу найти, как отключить его. Я попытался найти атрибут, чтобы применить его к main_activity.xml
, но пока ничего не нашел. Может кто-нибудь мне помочь?
Активность Android без ActionBar
Ответ 1
Ха-ха, я тоже застрял на этом этапе некоторое время назад, поэтому я рад, что могу помочь вам с решением, которое сработало для меня, по крайней мере :)
То, что вы хотите сделать, это определить новый стиль в values /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
Существует несколько способов сделать это.
1) Измените тему в манифесте Android
Ниже элемента приложения вы найдете тег темы. Замените его этим -
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) Динамическое удаление панели действий
Поместите этот код в метод onCreate
перед настройкой представления содержимого -
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
getActionBar().hide();
Если вы используете библиотеку поддержки, используйте getSupportActionBar()
.
Ответ 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" />
Последняя заметка: класс Activity должен расширять AppCompatActivity
public class MainActivity extends AppCompatActivity {
<!--Activity Items -->
}
Ответ 4
Вы также можете изменить наследование от ActionBarActivity к Activity, как написано здесь.
ОБНОВЛЕНИЕ
Хорошее решение здесь:
@Override
protected void onCreate(Bundle savedInstanceState) {
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
super.onCreate(savedInstanceState);
getSupportActionBar().hide();
setContentView(R.layout.activity_main);
}
Ответ 5
Если вы используете AppCompat
, объявите свою активность в AndroidManifest.xml
следующим образом:
<activity
android:name=".SomeActivity"
...
android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
Ответ 6
Я попытаюсь показать это как можно проще:
ДЕКЛАРАЦИЯ ПОЛНАЯ ЭКРАНИРОВКА В файле 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 Themes на слева, а затем NoTitleBar.Fullscreen.
Надеюсь, это поможет!
Ответ 7
Если вы хотите, чтобы в большинстве ваших действий была панель действий, вы, вероятно, наследовали бы свою базовую тему по умолчанию (это автоматически генерируется 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" ... >
Ответ 8
откройте Manifest и добавьте атрибут theme = "@style/Theme.AppCompat.Light.NoActionBar" к активности, которую вы хотите, без панели действий:
<application
...
android:theme="@style/AppTheme">
<activity android:name=".MainActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar">
...
</activity>
</application>
Ответ 9
Пожалуйста, найдите тему по умолчанию в styles.xml
<!-- 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" parent="Theme.AppCompat.Light.NoActionBar">
Ответ 10
Создайте новый стиль с любым именем, в моем случае "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", как в приведенном выше коде
откройте файл AndoridManifest.xml и настройте действие, которое вы хотите отобразить в качестве диалогового окна оповещения, как это
<activity
android:excludeFromRecents="true"
android:theme="@style/Theme.Alert.NoActionBar"
android:name=".activities.UserLoginActivity" />
в моем приложении я хочу показать свою активность входа в систему как диалог оповещений, это коды, которые я использовал. надеюсь, это сработает для вас!
Ответ 11
Это действительно просто. Просто зайдите в ваш styles.xml
измените родительскую тему на Theme.AppCompat.Light.NoActionBar
или Theme.AppCompat.NoActionbar
и все готово.. :)