Jak usunąć pasek tytułu w Android Studio?


88

W mojej aplikacji jest ten pasek tytułu u góry, gdzie byłoby przepełnione menu, ale nie potrzebuję ustawień i mam tylko jeden ekran. Kiedy zmieniam motyw, jak opisano w wielu innych pytaniach, otrzymuję stary motyw 2.2. Chcę mieć nowoczesny motyw bez paska na górze.

Odpowiedzi:


150

Przejdź do styles.xml i zmień .DarkActionBarna.NoActionBar

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
</style>

staje się

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
</style>

jeśli kolory nie mają znaczenia dla Twojej aplikacji, możesz to zrobić

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

1
Działa zgodnie z oczekiwaniami. Jednak tytuł zniknął również podczas przeglądania wszystkich aktywnych aplikacji.
IAbstract

jak byś naprawił to @IAbstract?
Pablo Biedma

@PabloBiedma: Nie wiem.
IAbstract

60

W pliku manifestu Zmień:

    android:theme="@style/AppTheme" >
    android:theme="@style/Theme.AppCompat.NoActionBar"

4
Chociaż to działa, edycja styles.xmlpliku może być lepszą opcją dla większości, ponieważ użycie tej metody ignoruje wszelkie wartości, które mogły zostać ustawione AppThemew styles.xmlpliku. Poniższe rozwiązanie, które zastępuje klasę nadrzędną NoActionBarw styles.xmlpliku, zachowuje wszelkie istniejące wcześniej informacje o stylu, które zostały skonfigurowane.
Lemonseed

W takim przypadku całe moje tło aplikacji będzie czarne
Sajid khan

24
this.requestWindowFeature(Window.FEATURE_NO_TITLE);

działa, onCreate()gdy jest umieszczony wcześniejsetContentView() zostanie wywołana .

w przeciwnym razie ulega awarii


6
Powoduje to awarię aplikacji. super.onCreate.....setContentView.....
Ustawiam

To nie jest właściwy sposób. Pan Torres dobrze to wyjaśnił.
Jithin Pavithran,

16

W styles.xml pliku, zmień DarkActionBar do NoActionBar

    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>


13

Sprawdź to

 ActionBar actionBar = getSupportActionBar();
    actionBar.hide();

To działający kod do ukrycia paska przez sam program. Można go umieścić w konstruktorze onCreate(...)po liniach super.onCreate(..)i setContentView(...), aby ukryć pasek zaraz po uruchomieniu programu.
Milan Kerslager


7

W pliku manifestu zmień na to:

android:theme="@style/Theme.AppCompat.Light.NoActionBar" >

6

To pracowało dla mnie przy values/styles.xmldodawaniu elementów:

       `<item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>`

6

Przejdź do Project -> app -> main -> res -> values ​​-> styles.xml

Zmień tę linię, jeśli chcesz ją usunąć dla każdego widoku

 `<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">`

do

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

jeśli chcesz, aby był to tylko jeden widok, możesz to zmienić w danych manifestu. Przejdź do Android -> manifesty -> AndroidManifest.xml. wykonaj następujące czynności:

  1. Wyszukaj widok, w którym chcesz uzyskać tego typu zmianę <activity android:name"...">
  2. Dodaj android:theme=""@style/Theme.AppCompat.NoActionBar"

4
  1. otwórz style.xml
  2. wstawić
 <style name="no_title" parent="AppTheme">
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowContentOverlay">@null</item>
 </style>

możesz zmienić nazwę = „---------”

  1. otwórz Androidmaifest.xm

    znajdź android: theme = "@ style / AppTheme" zmień na android: theme = "@ style / no_title"

  2. kliknij wybierz Motyw na pasku menu (zielony kolor obok MainActivity)

    • kliknij projekt Motyw
    • kliknij no_title (po prawej stronie)
    • Kliknij OK

4

Dla początkujących takich jak ja. Po prostu zrób to, co mówię, z projektu Android.

aplikacja -> res -> wartości -> style.xml

zastąpić ten kod

<resources>

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

</resources>

Cieszyć się.


3

usuń następujące elementy z activity_main.xml

<android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/AppTheme.PopupOverlay"/>

skontaktuj się ze mną, aby uzyskać dodatkową pomoc


2

zrób to w swoim pliku manifestu:

<application 
    android:icon="@drawable/icon" 
    android:label="@string/app_name" 
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen">

przełącza mnie na stary projekt Androida (czarne tło, pola tekstowe z żółtymi ramkami ...)
Jonas

spróbuj android:theme="@android:style/Theme.DeviceDefault.NoActionBar.Fullscreen"upewnij się, że korzystasz z poziomu API 14. min
Rustam

Możesz użyć tego dla jasnego motywu: android: theme = "@ style / Theme.AppCompat.Light.NoActionBar">
XIII

2

this.requestWindowFeature (Window.FEATURE_NO_TITLE);

w onCreate () działa!


2

Spróbuj zmienić style na NoActionBar, jeśli to nie zadziała, dodaj ten kod do głównego działania

 protected void onCreate(Bundle savedInstanceState) {
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        super.onCreate(savedInstanceState);
        ActionBar actionBar = getSupportActionBar();
        actionBar.hide();
        setContentView(R.layout.activity_main);

    }

2

To działa dla mnie, mam nadzieję, że zadziała również dla ciebie

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.activity_main);
}

1

Najlepszym sposobem jest użycie funkcji setTitle()paska akcji, jeśli chcesz wyświetlać logo lub mieć inne rzeczy w swoim actionBar, ale nie chcesz widzieć nazwy aplikacji, napisz ten kod w MainActivity.java lub gdziekolwiek chcesz ukryć tytuł w onCreate:

android.support.v7.app.ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setIcon(R.mipmap.full_white_logo_m); // display logo
actionBar.setTitle(""); // hide title

W ten sposób Twoja aplikacja nie będzie miała powodu do awarii.


1

Po prostu użyj setTitle(null)powyżej

toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

Tytuł zniknie, a następnie możesz użyć wybranego logo .....



1

Zmierzyłem się z tym samym problemem co Ty i rozwiązałem go po prostu zmieniając klasę, którą przedłużyłem.

//you will get the app that does not have a title bar at the top.
import android.app.Activity;
public class MainActivity extends Activity
{}

//you will get the app that has title bar at top
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity
{}

Mam nadzieję, że to rozwiąże Twój problem.


0

W AndroidManifest.xmlswojej aplikacji znajdziesz rozszerzenieandroid:theme na przykład ustawione na@style/AppTheme

Teraz przejdź do styles.xml, znajdź tag stylu, upewnij się, że nazwa jest AppThemetaka sama jak w manifeście i ustaw rodzica na android:Theme.Holo.Light.NoActionBar (zrób to również w stylach (v21), jeśli masz to w swoim projekcie)

<style name="AppTheme" parent="android:Theme.Holo.Light.NoActionBar">
    <!-- ... -->
</style>


0

try: toolbar.setTitle ("");

@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = findViewById(R.id.toolbar);
    toolbar.setTitle("");
    setSupportActionBar(toolbar);
}

Witamy w Stack Overflow! Nie odpowiadaj tylko za pomocą kodu źródłowego. Spróbuj przedstawić miły opis tego, jak działa Twoje rozwiązanie. Zobacz: Jak napisać dobrą odpowiedź? . Dzięki
sɐunıɔ ןɐ qɐp

0

Aby po prostu usunąć pasek tytułu (co oznacza, że ​​pasek zawiera nazwę aplikacji) z działania, po prostu dodaję poniższy wiersz do tego działania w manifests\AndroidManifest.xml:

android:theme="@style/AppTheme.NoActionBar"

Powinien teraz wyglądać jak poniżej

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

Mam nadzieję, że to się przyda.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.