Dokumentacja od Toolbar
mówi
Jeśli aplikacja używa obrazu logo, zdecydowanie powinna rozważyć pominięcie tytułu i podtytułu.
Jaki jest właściwy sposób usunięcia tytułu?
toolbar.setTitle("");
Dokumentacja od Toolbar
mówi
Jeśli aplikacja używa obrazu logo, zdecydowanie powinna rozważyć pominięcie tytułu i podtytułu.
Jaki jest właściwy sposób usunięcia tytułu?
toolbar.setTitle("");
Odpowiedzi:
getSupportActionBar().setDisplayShowTitleEnabled(false);
setSupportActionBar()
. Wybierając tę odpowiedź, ponieważ wydaje się, że jest to oficjalny sposób, zgodnie z oficjalnym odniesieniem:Set whether an activity title/subtitle should be displayed.
Prawidłowy sposób ukrycia / zmiany tytułu paska narzędzi jest następujący:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setTitle(null);
To dlatego, że kiedy dzwonisz setSupportActionBar(toolbar);
, togetSupportActionBar()
będzie odpowiedzialny za obsługę wszystkiego do paska akcji, a nie obiekt paska narzędzi.
Zobacz tutaj
Spróbuj tego...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_landing_page);
.....
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_landing_page);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
.....
}
Powodem mojej odpowiedzi jest to, że sama najbardziej pozytywna odpowiedź nie rozwiązała mojego problemu. Rozwiązałem ten problem, robiąc to.
<activity android:name="NAME OF YOUR ACTIVITY"
android:label="" />
Mam nadzieję, że to pomoże też innym.
<intent-filter>
zezwolenie użytkownikom na otwieranie aplikacji przez kliknięcie adresu URL (na przykład), okno dialogowe ujednoznacznienia nie będzie miało żadnego tytułu!
Innym sposobem na usunięcie tytułu z twojego Toolbar
jest null
wyrzucenie go w następujący sposób:
Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
toolbar.setTitle(null);
to
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
//toolbar.setNavigationIcon(R.drawable.ic_toolbar);
toolbar.setTitle("");
toolbar.setSubtitle("");
//toolbar.setLogo(R.drawable.ic_toolbar);
Jeśli używasz paska narzędzi Toolbar, wypróbuj poniższy kod:
toolbar.setTitle("");
Możesz użyć dowolnego z poniższych, ponieważ oba działają w ten sam sposób:
getSupportActionBar().setDisplayShowTitleEnabled(false);
i
getSupportActionBar().setTitle(null);
Gdzie używać:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
Lub:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setTitle(null);
Toolbar actionBar = (Toolbar)findViewById(R.id.toolbar);
actionBar.addView(view);
setSupportActionBar(actionBar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
zwróć uwagę na tę linię getSupportActionBar().setDisplayShowTitleEnabled(false);
Nie wiem, czy to właściwy sposób, czy nie, ale zmieniłem swój styl w ten sposób.
<style name="NoActionBarStyle" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
</style>
jeśli używasz domyślnego paska narzędzi, możesz dodać tę linię kodu
Objects.requireNonNull(getSupportActionBar()).setDisplayShowTitleEnabled(false);
To oczywiste, ale plik App Theme
wybór w projekcie dotyczy tylko wyświetlenia szkicu podczas edycji układu, nie jest związany z prawdziwym wyglądem aplikacji w telefonie komórkowym. W moim przypadku nie ma paska tytułu w projekcie, ale pasek tytułu był zawsze w telefonie komórkowym.
Zaczynam od programowania na Androida i walczę o znalezienie odpowiedniego rozwiązania.
Sama zmiana pliku manifestu ( AndroidManifest.xml
) nie wystarczy, ponieważ styl musi być wstępnie zdefiniowany styles.xml
. Bezużyteczna jest również zmiana plików układu.
Wszystkie proponowane rozwiązania w moim przypadku Java
lub Kotlin
zawiodły. Niektóre z nich powodują awarię aplikacji. A jeśli ktoś (tak jak ja) nigdy nie zamierza używać paska tytułu w aplikacji, rozwiązanie statyczne jest czystsze.
Dla mnie jedynym rozwiązaniem, które działa w 2019 roku (Android Studio 3.4.1) jest:
w styles.xml
(pod app / res / values) dodaj wiersze:
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
Po w AndroidManifest.xml
(pod aplikacją / manifestami)
Zastąpić
android:theme="@style/AppTheme">
przez
android:theme="@style/AppTheme.NoActionBar">
Nikt nie wspomniał:
@Override
protected void onCreate(Bundle savedInstanceState) {
supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
}
toolbar.setTitle(null);
// usuń tytuł
Toolbar toolbar = findViewById(R.id.myToolbar);
toolbar.setTitle("");