작업 표시 줄을 영구적으로 비활성화하는 방법


138

이 코드를 사용하여 벌집에서 작업 표시 줄을 숨길 수 있습니다.

getActionBar().hide();

그러나 키보드가 열리고 사용자가 아무 것도 복사하여 붙여 넣으면 작업 표시 줄이 다시 표시됩니다. 작업 표시 줄을 영구적으로 비활성화하려면 어떻게합니까?


2
답변을 찾았습니다 hhh <activity android : theme = "@ android : style / Theme.NoTitleBar.Fullscreen"....>
Biji

1
복사하려고 할 때 작업 표시 줄이 아니라 기본보기를 붙여 넣으십시오.
Padma Kumar

네, 그러나 복사 붙여 넣기가 끝난 후에도 여전히 사라지지 않았습니다
Biji

getSupportActionBar (). hide ();
Ameya Salagre

답변:


252

3.2 이전 장치 Theme.Holo.Light에서 Theme.Holo.Light.NoActionBar변형 을 사용하려는 경우 다음에 추가 할 수 있습니다 styles.xml.

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

그런 다음 활동 테마로 설정하십시오.

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

8
이것이 정답입니다. @Biji의 솔루션과 같은 사용자 정의 테마를 제거하지 않습니다.
phreakhead

1
어떤 추가 플래그를 설정하면 알림 표시 줄이 숨겨져 있는지 알 수 있습니까?
jesses.co.tt

1
또한 ActionBarActivity 대신 FragmentActivity에서 상속해야한다는 것을 알았습니다.
Meanman

4
@ jesses.co.tt – 알림 표시 줄을 사용하여 제거 할 수 있습니다<item name="android:windowFullscreen">true</item>
Mike Baxter

이것은 나를 위해 작동하지 않았습니다. 다음을 사용했습니다 : stackoverflow.com/questions/29790070/…
Christopher Smit

116

매니페스트에서 활동 테마를 설정하면

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

이것은 그것을하는 유일한 방법처럼 보입니다. esp. 맨 아래에 relativelayout이 발생하면 ...
jcfrei

1
불행히도 이것이 내가 일할 수있는 유일한 방법입니다. 그것은 사용자 정의 테마를 제거하지만 실제로 ActionBar나를 위해 완전히 제거하는 유일한 것입니다 .
RileyE

3
새 ADT에서 AppCompat 테마를 적용 할 때는 작동하지 않습니다. 나는 이것이 싸우지 않을 것이라고 생각합니다-AppCompat에서 완전히 멀리하려고하는 것도 좋은 해결책입니다! @monchote의 접근법을 시도해 보았고 저에게 효과적입니다.
ericn

이해야 <활동은 안드로이드 : 테마 = "@ 안드로이드 : 스타일 / Theme.NoTitleBar"> <: 테마 = "@ 안드로이드 : 스타일 / Theme.NoTitleBar.Fullscreen"활동이 안드로이드> 대신
Amandeep Rohila

삼성 갤럭시 J2에 그것은 응용 프로그램 충돌하지만 넥서스 9 아무런 문제가 있습니다
Suici 도가


30
<application
    .
    .
    android:theme="@android:style/Theme.Holo.Light.NoActionBar"
    . >

아마도 이것은 당신을 도울 것입니다


3
이 방법을 사용하려면 api 레벨 13
Olumide

23

Android Studio에서 기본적으로 생성 된 Activity 수퍼 클래스는 ActionBarActivity다른 응답의 솔루션 중 어느 것도 작동하지 않습니다. 슈퍼 클래스 변경을 해결하려면 다음을 수행하십시오.

public class xxxActivity extends ActionBarActivity{

에:

public class xxxActivity extends Activity {

이것은 나를 위해 그것을했다. 당신의 도움을 주셔서 감사합니다.
j_fulch

17

actionBar 및 Title없이 전체 화면을 표시하려는 경우.

style.xml에 추가하십시오.

<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.DarkActionBar">
      <item name="windowActionBar">false</item>
      <item name="windowNoTitle">true</item>
      <item name="android:windowFullscreen">true</item>
</style>

manifest.xml에서 스타일을 사용하십시오.

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

12

사용자 정의 테마를 제공하고 작업 표시 줄을 제공하지 않는 가장 좋은 방법은 프로젝트의 모든 활동에 대해 SuperClass를 작성하고 onCreate ()에서 다음 코드 행을 호출하는 것입니다.

this.requestWindowFeature(Window.FEATURE_NO_TITLE);

그것은 항상 나를 위해 작동합니다. 이 방법의 유일한 문제는 앱을 시작할 때 몇 분의 작업 표시 줄이 표시되는 것입니다 (활동이 아니라 완전한 앱).


12
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my);
    getSupportActionBar().hide();
}

12

styles.xml로 이동이 DarkActionBar를 NoActionBar로 변경하십시오.

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

7

작업 표시 줄을 강제로 숨길 수 있습니다.

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

기본 테마 만 사용하십시오.


7

액션 바가없는 테마를 원한다면 'NoActionBar'변형을 사용할 수 있습니다. 기본 테마가 아래와 같다면

<!-- Base application theme. -->
<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>

그럼 당신은 사용할 수 있습니다

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

그러나 주요 테마, 즉 AppTheme의 속성을 유지하려면 다음과 같이 할 수 있습니다

<style name="AppThemeNoActionBar" parent="AppTheme">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

이 방법으로 기본 테마의 모든 속성을 유지할 수 있으며 NoActionBar 테마에 명시 적으로 추가 할 필요는 없습니다. :)


6

Holo 테마를 사용하지 않으면 작업 표시 줄이 사라집니다. 이 코드는 지원 lib v7과 함께 API 8 이상에서 작동합니다.

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

활동에 대한 테마를 설정하십시오.

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

그리고 당신의 활동 수업에서.

ActionBarActivity를 확장하더라도 작동합니다.


6

아래 입술 -> 값 -> styles.xml

변화

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

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


5

빠른 해결책이 있습니다.

styles.xml을 찾고 아래에 표시된대로 기본 애플리케이션 테마를 "Theme.AppCompat.NoActionBar"로 변경하십시오.

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
    <!-- Customize your theme here. -->
</style>

3

다음은 작업 표시 줄을 영구적으로 숨기는 단계입니다.

  1. app / res / values ​​/ styles.xml을여십시오.
  2. "apptheme"이라는 스타일 요소를 찾으십시오. 와 비슷해야합니다 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">.
  3. 이제 이름에 "NoActionBar"가 포함 된 다른 테마로 부모를 바꾸십시오.

    ㅏ. activity_main.xml의 디자인 탭으로 전환 한 다음 UI의 테마 드롭 다운 목록에 제공된 각 테마를 사용해 테마가 어떻게 보이는지 확인할 수도 있습니다.

  4. 귀하의 경우 MainActivity가 확장 AppCompatActivity을 확실히 당신이 APPCOMPAT 테마를 사용합니다.


3

이 코드를 onCreate메소드에 setContentView다음과 같이 입력하십시오 .

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 0);

3

이것에 대한 디자이너 접근 방식을 게시하고 싶습니다. 이는 디자인을 비즈니스 로직과 별도로 유지합니다.

1 단계. (res-> values-> styles.xml)에 새 스타일을 만듭니다. 기본적으로 부모가 다른 전체 스키마의 복사본입니다-parent = "Theme.AppCompat.Light.NoActionBar"

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

        <item name="android:windowNoTitle">true</item>
    </style>

2 단계 : AndroidManifest.xml에서이 테마를 원하는 활동에 추가하십시오. 예 : 조치 표시 줄이없는 기본 활동을 원하므로 다음과 같이 추가하십시오.

<activity android:name=".MainActivity"
            android:theme="@style/MarkitTheme">

이것은 많은 것을 시도한 후에 나에게 가장 적합한 솔루션입니다.


2

onCreate 함수에서 다음 코드를 추가하십시오.

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

그냥 android.support.v7.app.ActionBar를 가져옵니다.


2

styles.xml파일 에서 기본 테마의 이름을 다음과 같이 변경하여 새 테마를 작성하십시오 .

 <style name="MyTheme" parent="android:Theme.Material.Light.NoActionBar">

아래의 드롭 다운 메뉴에서 main_activity.xml테마라고 부르는 테마로 테마를 변경하십시오.


1

작업 표시 줄을 제거하면서 ViewPager를 유지하려는 또 다른 흥미로운 솔루션은 스타일을 표시하는 것입니다.

<style name="AppTheme" parent="AppBaseTheme">
    <item name="android:windowActionBarOverlay">true</item>
    <item name="android:actionBarStyle">@style/NoActionBarStyle</item>
    <item name="android:windowContentOverlay">@null</item>
</style>
<style name="NoActionBarStyle" parent="android:Widget.Holo.ActionBar">
    <item name="android:backgroundSplit">@null</item>
    <item name="android:displayOptions"></item>
</style>

이것은 안드로이드의 대부분의 다이얼러 응용 프로그램이 작업 표시 줄없이 ViewPager를 표시하는 방식입니다.

참조 : https://github.com/CyanogenMod/android_packages_apps_Dialer


이 솔루션은 흰색 영역을 맨 위에 둡니다.
Felipe FMMobile

NoActionBarStyle 부모를 @ style / Widget.AppCompat.ActionBar.TabBar로 변경하면 Android 2.3에서 Theme.AppCompat.Light가 작동했습니다 (ViewPager를 사용하고 있습니다)
TouchBoarder

1

당신의 매니페스트에서 이것을 시도하십시오

 <activity
        android:name=".MainActivity"
        android:theme="@android:style/Theme.Holo.NoActionBar"
        android:label="@string/app_name" >

1
  protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   android.support.v7.app.ActionBar actionBar = getSupportActionBar();
    if (actionBar != null) {
        actionBar.hide();
    }
    setContentView(R.layout.activity_main);

1

ActionBarAndroid 에서 비활성화하는 방법에는 두 가지가 있습니다 .

requestWindowFeature(Window.FEATURE_NO_TITLE); 
setContentView(R.layout.activity_main); 

1

styles.xml파일 에서 이것을 사용하십시오 :


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

0

이 솔루션을 사용합니다.

매니페스트의 활동 태그 내에서 :

android:label="@string/empty_string"

그리고 strings.xml에서 :

<string name="empty_string">""</string>

이렇게하면 제목과 함께 ActionBar (또는 툴바)를 유지하지만 활동이 생성되면 제목이 자동으로 비어 있습니다.


0

이상하게도 4.4.2 (API 19)를 실행하는 Nexus 7을 빌드 할 때 이들 중 어느 것도 나를 위해 일하지 않았습니다. 빈 활동 앱을 만든 후 최소한 최신 버전의 Android Studio (1.2.1.1)를 사용하는 경우 :

android : theme = "@ style / AppTheme"

활동 요소가 아닌 애플리케이션 요소에 있습니다. 위의 코드를 제거하거나 다음과 같이 변경하려고 시도한 경우 :

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

앱이 실행되지 않습니다 ...이 문제가 발생하면 styles.xml 파일 (res> values> styles.xml)로 이동하여 .NoTitleBar를 다음 블록과 같이 부모의 끝에 추가하십시오.

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

AndroidManifest 파일을 변경할 필요가 없습니다.


0

당신의에서 activity_main.xml, 당신은 줄에 거기에서 조정할 수 있습니다 :

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
.......
    android:theme="@style/Theme.Design.Light.NoActionBar"
.......    
">

때때로 여기를 클릭하십시오 . 여기에서 "noActionBar"테마를 선택할 수 있습니다.

내가 당신을 도왔기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.