내 앱에는 오버플로 메뉴가있는 상단에 제목 표시 줄이 있지만 설정이 필요없고 화면이 하나뿐입니다. 다른 많은 질문에서 설명한 것처럼 테마를 변경하면 이전 2.2 테마가 표시됩니다. 나는 상단에 바없이 현대적인 테마를 갖고 싶다.
답변:
styles.xml과 변화로 이동 .DarkActionBar
에 대한.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>
된다
<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>
색상이 앱과 관련이없는 경우 실제로
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar" />
매니페스트 파일에서 변경 :
android:theme="@style/AppTheme" >
android:theme="@style/Theme.AppCompat.NoActionBar"
styles.xml
방법을 사용 AppTheme
하면 styles.xml
파일 에 설정된 모든 값을 무시 하므로 파일을 편집 하는 것이 대부분의 경우 더 나은 옵션 일 수 있습니다 . 파일 NoActionBar
내 에서 상위 클래스를 대체하는 아래 솔루션 styles.xml
은 설정된 기존 스타일 정보를 보존합니다.
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
onCreate()
전에 넣어 질 때 작동합니다 setContentView()
.
그렇지 않으면 충돌
super.onCreate.....
하고 setContentView.....
그리고 그것은 충돌
에서 styles.xml의 파일 변경 DarkActionBar을 에 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>
이것을 확인하십시오
ActionBar actionBar = getSupportActionBar();
actionBar.hide();
onCreate(...)
위해 super.onCreate(..)
및 setContentView(...)
줄 뒤에 생성자에 배치 할 수 있습니다 .
Project-> app-> main-> res-> values-> styles.xml로 이동하십시오.
모든보기에서 삭제하려면이 줄을 변경하십시오.
`<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">`
...에
`<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">`
하나의 뷰로 만 만들고 싶다면 매니페스트 데이터에서 변경할 수 있습니다. Android-> 매니페스트-> AndroidManifest.xml로 이동합니다. 다음을 수행하십시오.
<activity android:name"...">
android:theme=""@style/Theme.AppCompat.NoActionBar"
<style name="no_title" parent="AppTheme">
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
name = "---------"을 변경할 수 있습니다.
Androidmaifest.xm을 엽니 다.
find android : theme = "@ style / AppTheme"chang to android : theme = "@ style / no_title"
메뉴 표시 줄에서 테마 선택을 클릭합니다 (MainActivity 근처의 녹색).
나 같은 초보자를 위해. Android 프로젝트에서 내가 말하는대로하세요.
앱-> 해상도-> 값-> style.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>
즐겨.
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"/>
매니페스트 파일에서 다음을 수행하십시오.
<application
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
android:theme="@android:style/Theme.DeviceDefault.NoActionBar.Fullscreen"
당신이 API 레벨 분 14 사용하고 있는지를
작동하지 않는 경우 스타일을 NoActionBar로 변경해보십시오.이 코드를 기본 활동에 추가하십시오.
protected void onCreate(Bundle savedInstanceState) {
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
ActionBar actionBar = getSupportActionBar();
actionBar.hide();
setContentView(R.layout.activity_main);
}
이것은 나에게도 효과가 있습니다.
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);
}
가장 좋은 방법은 setTitle()
로고를 표시하거나 actionBar에 다른 항목을 포함하고 싶지만 앱 이름을보고 싶지 않은 경우이 코드를 MainActivity.java 또는 제목을 숨기려는 위치에 작성하는 경우 액션 바 기능을 사용하는 것입니다 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
이렇게하면 앱이 충돌 할 이유가 없습니다.
setTitle(null)
위의 사용
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
제목이 사라지면 원하는 로고를 사용할 수 있습니다 .....
가장 쉬운 방법 :이 버튼을 두 번 클릭하고 "NoTitleBar"를 선택하십시오;)
나는 당신과 같은 문제에 직면했고, 내가 확장 한 클래스를 변경 하여이 문제를 해결합니다.
//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
{}
이것이 당신의 문제를 해결하기를 바랍니다.
에서 AndroidManifest.xml
응용 프로그램의 당신은 찾을 수 있습니다 android:theme
에 예를 들어 설정을@style/AppTheme
이제로 이동 styles.xml
하여 스타일 태그를 찾은 다음 이름이 AppTheme
매니페스트와 동일하게 설정되어 있는지 확인하고 부모를 다음으로 설정 android:Theme.Holo.Light.NoActionBar
합니다 (프로젝트에 스타일이있는 경우 스타일 (v21)에서도 수행).
<style name="AppTheme" parent="android:Theme.Holo.Light.NoActionBar">
<!-- ... -->
</style>
시도 : 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);
}