Android ActionBar에서 제목 텍스트를 어떻게 제거합니까?


106

Holo.Light테마를 살펴보고 있는데 내 앱이 처음 실행될 때 잠시 표시되는 제목 텍스트를 제거하기 위해 재정의 할 마법 스타일을 찾을 수없는 것 같습니다.

어떻게 할 수 있습니까?

답변:


216

시험:

 getActionBar().setDisplayShowTitleEnabled(false);

v.7의 경우 :

 getSupportActionBar().setDisplayShowTitleEnabled(false);

22
작업 표시 줄이로드되는 동안 원하는 것이 아닌 제목이 계속 표시됩니다. 올바른 해결책은 m3n0R이 제안한 것입니다.
numan salati 2013

12
getSupportActionBar (). setDisplayShowTitleEnabled (false); v7. othewise 그것은 널 포인터 실행을 생성합니다
Amir

5
@numansalati m3n0R은 누구입니까? 나는 페이지를 검색하고 아무것도 발견 한
ka3ak

언제 방법을 교정해야합니까? 어떤 메서드 (활동, 조각)를 호출해야합니까?
ka3ak

94

나는 이것이 정답이라고 생각합니다.

<style name="AppTheme" parent="Theme.Sherlock.Light.DarkActionBar">
    <item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
    <item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
</style>

<style name="Widget.Styled.ActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid.Inverse">
    <item name="android:displayOptions">showHome|useLogo</item>
    <item name="displayOptions">showHome|useLogo</item>
</style>

Android 4는 어떻습니까? ActionBarSherlock을 사용하지 않으므로이라는 리소스가 없습니다 Widget.Sherlock.Light.ActionBar.Solid.Inverse. 어떤 부모를 사용해야합니까?
알렉스 Semeniuk

홀로 테마. 기본적으로 확장 할 수있는 3 개의 홀로그램 테마가 있습니다.
cesards

이것은 첫 실행시 제목을 숨기는 데 효과적입니다. 다른 활동에서 setTitle을 호출하는 것은 작동하지 않습니다. 런타임에 작업 모음 스타일을 바꾸는 방법이 있습니까?
speedynomads

런타임에 기본 테마 설정 :)
cesards

@ domji84, 매니페스트 파일에서 각 활동의 테마를 지정할 수 있습니다.
ashishduh 2014 년

63

저는 Android를 처음 접했기 때문에 제가 틀렸다면 정정 해주세요.하지만 Action Bar에서 내비게이션 탭을 사용하기로 결정했다면 제목 텍스트 색상이 투명하고 투명하지 않기 때문에 완전히 왼쪽 정렬되지 않은 것 같습니다. t 사라졌다.

<style name="CustomActionBarStyle" parent="@android:style/Widget.Holo.ActionBar">
     <item name="android:displayOptions">useLogo|showHome</item>
</style>

나를 위해 일했습니다.


네, 틀 렸습니다. 질문에 탭이없고 답변에 홀로 라이트가 없습니다
miky

이것을 시도하는 동안이 오류가 발생합니다. @ android : style / Widget.Holo.ActionBar에는 API 레벨 11이 필요합니다 (현재 최소값은 10).
jrhamza 2014

이 스타일을 내 애플리케이션의 모든 활동이 아닌 특정 활동의 작업 표시 줄에 할당하려는 경우. 내가 어떻게 해? 'android : displayOptions'줄을 어디에 넣습니까? Menu.xml에서? AndroidMenifest.xml에서?
GyRo

43

알았다. 당신은 재정의해야

android:actionBarStyle

그런 다음 사용자 지정 스타일에서 재정의해야합니다.

android:titleTextStyle

여기에 샘플이 있습니다.

내 themes.xml에서 :

<style name="CustomActionBar" parent="android:style/Theme.Holo.Light">
        <item name="android:actionBarStyle">@style/CustomActionBarStyle</item>
</style>

그리고 내 styles.xml에서 :

<style name="CustomActionBarStyle" parent="android:style/Widget.Holo.ActionBar">
        <item name="android:titleTextStyle">@style/NoTitleText</item>
        <item name="android:subtitleTextStyle">@style/NoTitleText</item>
</style>

<style name="NoTitleText">
        <item name="android:textSize">0sp</item>
        <item name="android:textColor">#00000000</item>
</style>

textSize를 0으로 설정하는 것이 트릭을 수행하지 않은 이유를 모르겠지만 (텍스트를 축소했지만 사라지지 않았습니다) textColor를 투명으로 설정하면 작동합니다.


3
네, 도움이되었습니다. 왜 android:visibility=gone효과가 없는지 아십니까? 또는 더 좋은 점 setDisplayShowTitleEnabled은 바가로드되는 동안 제목 텍스트 가 계속 표시되는 이유는 무엇입니까?
마티아스

7
크기를 0으로 설정하는 대신 <item name = "android : displayOptions"> useLogo | showHome </ item> 사용
Jerome VDL

23

매니페스트에서

<activity android:name=".ActivityHere"
     android:label="">

33
작동하지만 '최근에 사용한 앱'선택기에 앱이 표시되지 않습니다
Rupert Bates

1
이 메이크업 앱에서 전화 애플리케이션에 / 메인 화면 이름이없는
Nimitack

13

이 진술을 아래에 작성하십시오.

setContentView(R.layout.activity_main);

getSupportActionBar().setDisplayShowTitleEnabled(false);

AppCompactActivity를 확장 getSupportActionbar()하면 Activity 사용을 확장하면 사용할 getActionBar()수 있습니다.

null pointer exception

사용 android:label=""AndroidManifest.xml 활동도 작동뿐만 앱에 표시되지 않습니다Recently used apps


9

두 가지 선택이 있습니다.

첫째 :

getActionBar().setDisplayShowTitleEnabled(false);

getActionBar()null 포인터 예외가 생성 된 경우 Second 를 사용해야합니다.getSupportActionBar()

getSupportActionBar().setTitle("your title");

또는

getSupportActionBar().setDisplayShowTitleEnabled(false);
getSupportActionBar().hide();

6

이 코드를 앱 매니페스트에서 사용합니다.

<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:logo="@drawable/logo2"
        android:label="@string/title_text"
        android:theme="@style/Theme.Zinoostyle" >

내 로고 파일은 200 * 800 픽셀이며 주요 활동에서이 코드를 사용합니다.

getActionBar().setDisplayShowTitleEnabled(false);

그것은 Corectly 작동합니다


6

나는 이것을 시도했다. 이것은 도움이 될 것입니다-

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayShowTitleEnabled(false);

getSupportActionBar는 setSupportActionBar 이후에 호출되어야합니다. 따라서 도구 모음을 설정해야합니다. 그렇지 않으면 도구 모음 세트가 없으므로 NullpointerException이 발생합니다. 도움이 되었기를 바랍니다


5

각 활동에 적용되는 스타일을 변경하거나 특정 활동에 대한 동작 만 변경하려는 경우 다음을 시도 할 수 있습니다.

setDisplayOptions(int options, int mask) --- Set selected display 
  or
setDisplayOptions(int options) --- Set display options.

작업 표시 줄에 제목을 표시하려면 onCreate ()에서 표시 옵션을 설정합니다.

getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE, ActionBar.DISPLAY_SHOW_TITLE);

액션 바에서 제목을 숨기려면.

getSupportActionBar().setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE);

자세한 내용은 여기 .


3

나를 위해 정말로 효과가 있었던 유일한 것은 다음을 추가하는 것입니다.

<activity 
    android:name=".ActivityHere"
    android:label=""
>

"틀린"대답 이었지만 비슷한 경우에 도움이되었습니다. :)
Javier

1
최소화 할 때 응용 프로그램이 충돌합니다 그것으로이 작업을 수행하지 마십시오
jfcartier

3
getSupportActionBar().setDisplayShowTitleEnabled(false);
    getSupportActionBar().hide();

이것이 도움이되기를 바랍니다


2

다음을 사용하십시오.

requestWindowFeature(Window.FEATURE_NO_TITLE);

ActionBar를 사용하는 경우 그렇게 할 수 없습니다. 이 작업을 시도하면 앱이 열릴 때 즉시 충돌이 발생합니다.
Christopher Perry

@ChristopherPerry 사실이 아닙니다. setContentView를 호출하기 전에 수행하는 경우이를 사용하여 코드에서 작업 표시 줄을 제거 할 수 있습니다.
numan salati 2013

그러나 이것은 제목 대신 전체 작업 표시 줄을 제거하는 것입니다!
bofredo

2

하나의 활동에 대해서만 수행하고 아마도 동적으로 수행하려면 다음을 사용할 수도 있습니다.

ActionBar actionBar = getActionBar();
actionBar.setDisplayOptions(actionBar.getDisplayOptions() ^ ActionBar.DISPLAY_SHOW_TITLE);

1

해결 방법으로 사용자 지정 작업 / 도구 모음이있는 경우이 줄을 추가하십시오.

this.setTitle("");

당신의 활동에서


1

이 모든 것이 허용되지만 활동에 기본 활동 만 포함 된 경우 다음 res\values\styles.xml과 같이 편집 할 수 있습니다 .

<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>

parentAndroid Studios Create Blank ApplicationWizard 의 Light 테마에 .NoActionBar 속성을 업데이트 하고 추가했습니다 .


그러면 제목뿐만 아니라 전체 작업 표시 줄이 비활성화됩니다. 빈 작업 표시 줄을 만들려면 모든 단일보기에 대해 수행해야합니다.
AlwaysConfused 18:41에

1

간단히 Java 파일을 확장 AppCompatActivity하고 다음을 수행하십시오.

ActionBar actionBar = getSupportActionBar(); // support.v7
actionBar.setTitle(" ");

0

manifest.xml 페이지에서 활동 라벨에 주소를 제공 할 수 있습니다. 주소는 values ​​/ strings.xml 어딘가에 있습니다. 그런 다음 xml 파일의 태그 값을 null로 변경할 수 있습니다.

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title_main_activity"></string>
</resources>

0

나는 Android를 처음 사용하므로 내가 틀렸을 수도 있지만이 문제를 해결하려면 매니페스트로 이동하여 활동 레이블을 제거하면됩니다.

<activity
        android:name=".Bcft"
        android:screenOrientation="portrait"

        **android:label="" >**

나를 위해 일했다 ....


-3
ActionBar actionBar = getActionBar();
actionBar.setTitle("");

3
@Matteo 작동 할 수 있지만 확실히 스케치하고 올바른 방법이 아닙니다. 실제로 제목 텍스트를 실제로 제거하지 않고 ""로 설정하여 볼 수 없도록 설정합니다.
user1234
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.