기존 사용자 정의 테마로 XML에서 활동의 제목 표시 줄을 숨기는 방법 활동에 스타일을

일부 활동에 대한 제목 표시 줄을 숨기고 싶습니다. 문제는 모든 활동에 스타일을 적용했기 때문에 테마를로 설정할 수 없다는 것 @android:style/Theme.NoTitleBar입니다.

NoTitleBar 테마를 내 스타일의 부모로 사용하면 모든 활동에서 제목 표시 줄이 제거됩니다.

제목 없음 항목을 어딘가에 설정할 수 있습니까?



답변

당신의 onCreate()방법으로 이것을하십시오 .

//Remove title bar
this.requestWindowFeature(Window.FEATURE_NO_TITLE);

//Remove notification bar
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

//set content view AFTER ABOVE sequence (to avoid crash)
this.setContentView(R.layout.your_layout_name_here); 

this을 참조하십시오 Activity.


답변

당신은 수정할 수 있습니다 AndroidManifest.xml:

<activity android:name=".MainActivity"
          android:label="@string/app_name"
          android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen">

android:theme="@android:style/Theme.Black.NoTitleBar"전체 화면 활동이 필요하지 않은 경우 사용 하십시오.

참고 : 이전에 ‘기본’보기를 사용한 경우 부모 클래스를에서 AppCompatActivity로 변경해야 합니다 Activity.


답변

나는 이제 다음을 수행했다.

나는 일반적인 스타일에서 모든 것을 상속받는 스타일을 선언하고 titleBar를 비활성화했습니다.

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

이제이 스타일을 애플리케이션 전체 스타일을 덮어 쓰고 다른 모든 스타일 정보를 상속하는 제목 표시 줄을 숨기려는 모든 활동에 설정할 수 있으므로 스타일 코드에 중복이 없습니다.

특정 활동에 스타일을 적용하려면 AndroidManifest.xml다음 속성을 열고 activity태그에 추가하십시오 .

<activity
    android:theme="@style/generalnotitle">


답변

this.requestWindowFeature(Window.FEATURE_NO_TITLE);제목 표시 줄이 잠깐 나타난 다음 사라지기 때문에 싫어합니다 .

또한 android:theme="@android:style/Theme.NoTitleBar"새 장치 사용자가 사용했던 3.0+ Holo 변경 사항을 모두 잃어 버렸기 때문에 마음에 들지 않습니다 . 그래서이 솔루션을 보았습니다.

당신에 고해상도 / 값 라는 파일을 만들 폴더 styles.xml (이미 존재하지 않는 경우). 해당 파일에 다음 코드를 배치하십시오.

<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="Theme.Default" parent="@android:style/Theme"></style>
    <style name="Theme.NoTitle" parent="@android:style/Theme.NoTitleBar"></style>
    <style name="Theme.FullScreen" parent="@android:style/Theme.NoTitleBar.Fullscreen"></style>
</resources>

다음 으로 다른 styles.xml 파일 로 res / values-v11 을 작성 하십시오 (다시 한 번 이것이 이미 존재할 수 있음). 해당 파일에 다음 코드를 배치하십시오.

<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="Theme.Default" parent="@android:style/Theme.Holo"></style>
    <style name="Theme.NoTitle" parent="@android:style/Theme.Holo.NoActionBar"></style>
    <style name="Theme.FullScreen" parent="@android:style/Theme.Holo.NoActionBar.Fullscreen"></style>
</resources>

4.0 이상을 대상으로하는 경우 다른 styles.xml 파일을 사용하여 res / values-v14 폴더를 만듭니다 (예 : 이미있을 수 있음). 해당 파일에 다음 코드를 배치하십시오.

<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="Theme.Default" parent="@android:style/Theme.Holo.Light"></style>
    <style name="Theme.NoTitle" parent="@android:style/Theme.Holo.Light.NoActionBar"></style>
    <style name="Theme.FullScreen" parent="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen"></style>
</resources>

마지막으로 이러한 파일을 모두 생성 한 후 AndroidManifiest.xml 파일을 열고 코드를 추가 할 수 있습니다.

android:theme="@style/Theme.NoTitle"

제목이 필요하지 않은 활동의 활동 태그 또는 전체 응용 프로그램에 적용하려는 경우 응용 프로그램 태그.

이제 사용자는 원하는 화면 레이아웃으로 장치 버전과 관련된 테마를 얻을 수 있습니다.

PS 값을 변경하면 android:theme="@style/Theme.FullScreen"동일한 효과가 있지만 알림 표시 줄도 제거됩니다.


답변

개발자 Android 페이지에 언급 된대로 제목 표시 줄을 두 가지 방법으로 제거 할 수 있습니다.

에서 manifest.xml파일 :

  1. application앱의 모든 활동에 대해 다음 을 제거 하려면 다음을 추가하십시오 .

    <application android:theme="@android:style/Theme.Black.NoTitleBar">
  2. 또는 특정 활동의 경우 :

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

답변

정답은 아마도 ActionbarActivity를 확장하는 것이 아니라 Activity 만 확장하는 것입니다.


여전히 작업 표시 줄 활동을 사용하면 이것이 작동하는 것 같습니다.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getSupportActionBar().hide(); //<< this
    setContentView(R.layout.activity_main);
}

이것도 작동하는 것 같습니다.

styles.xml:

   <style name="AppBaseTheme" parent="Theme.AppCompat.Light" >
          <item name="android:windowNoTitle">true</item>   <!-- //this -->
   </style>

Scott Biggs가 쓴 것처럼 나는 할 수 있었다. 이런 종류의 작품. 테마가 없다는 것을 제외하고. 설정 메뉴의 배경이 투명하다는 것을 의미합니다.

그냥 변경

public class MainActivity extends ActionBarActivity {

활동 또는 FragmentActivity

public class MainActivity extends Activity  {

그러나 소재 디자인을 사용하여 충분히 좋아 보이고 작업 표시 줄을 제거하지 않을 수 있습니다 :
https://gist.github.com/shimondoodkin/86e56b3351b704a05e53

  1. 응용 프로그램의 아이콘을 설정
  2. 디자인에 맞게 작업 표시 줄의 색상을 설정하십시오.
  3. 아이콘을 설정 메뉴로 설정
  4. 더 많은 아이콘 추가 (버튼 상단)

머티리얼 디자인 호환성 액션 바 스타일링의 예입니다.


답변

나를 위해 일하는 것 :

styles.xml에서 1- :

 <style name="generalnotitle" parent="Theme.AppCompat.Light" >
          <item name="android:windowNoTitle">true</item>   <!-- //this -->
   </style>

MainActivity에서 2

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getSupportActionBar().hide(); //<< this
    setContentView(R.layout.activity_main);
}
  1. 매니페스트에서 스타일을 상속합니다.

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