AppCompat의 전체 화면 테마
전체 화면 테마(제목 표시줄 없음 + 수행 표시줄 없음)를 활동에 적용하는 방법을 알고 싶습니다.지원 패키지 v7의 AppCompat 라이브러리를 사용하고 있습니다.
지원하려고 했습니다.android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
제가 특정한 활동을 했는데 추락을 했어요제 애플리케이션 테마가 이렇게 되어있어서 그런 것 같습니다.
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
저도 이거 먹어봤어요.
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
제목 표시줄만 숨기고 작업 표시줄은 숨깁니다.현재 해결책은 다음과 같이 작업 표시줄을 숨기는 것입니다.
getSupportActionBar().hide();
테마를 사용할 때.앱에서 아래 코드를 스타일에 추가하여 전체 화면 테마를 사용할 수 있습니다.
<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light.NoActionBar">
<item name="android:windowNoTitle">true</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
그리고 매니페스트 파일에도 언급할 수 있습니다.
<activity
android:name=".activities.FullViewActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen"
/>
@nebyan의 답변을 토대로 액션 바가 여전히 숨어있지 않다는 것을 알게 되었습니다.
저는 다음 코드를 사용할 수 있습니다.
<style name="AppFullScreenTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowNoTitle">true</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
그리고 물론 당신의 것을 편집하는 것을 잊지 마세요.AndroidManifest
파일.
<activity
android:name="YOUR_ACTIVITY_NAME"
android:theme="@style/AppFullScreenTheme"
/>
<style name="Theme.AppCompat.Light.NoActionBar" parent="@style/Theme.AppCompat">
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
</style>
style.xml에서 위의 xml을 사용하면 제목과 수행 표시줄을 숨길 수 있습니다.
안드로이드 4.0 이전 버전과 이후 버전(API 레벨 14)에서 문제가 발생합니다.
여기서부터 나만의 해결책을 만들었습니다.
@SuppressLint("NewApi")
@Override
protected void onResume()
{
super.onResume();
if (Build.VERSION.SDK_INT < 16)
{
// Hide the status bar
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
// Hide the action bar
getSupportActionBar().hide();
}
else
{
// Hide the status bar
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);
/ Hide the action bar
getActionBar().hide();
}
}
앱을 종료한 후 다시 열면 작업 표시줄이 활성 상태로 유지되기 때문에 이 코드를 Resume() 메서드에 씁니다.
도움이 되었기를 바랍니다 ;)
여러분의 "해결책"(바 유어셀프 결행을 숨김)이 일반적인 방법입니다.그러나 Google은 제목 표시줄이 숨겨져 있을 때 항상 작업 표시줄을 숨길 것을 권장합니다.여기를 보세요: https://developer.android.com/training/system-ui/status.html
다음 단계를 수행할 수 있습니다:-
Andorid Menifest.xml
<activity
android:name=".ui.FullImageActivity"
android:label="@string/title_activity_main"
android:screenOrientation="landscape"
android:theme="@style/DialogTheme">
</activity>
Style.xml
<style name="DialogTheme" parent="android:Theme.Dialog">
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">fill_parent</item>
<!-- No backgrounds, titles or window float -->
<item name="android:windowNoTitle">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowIsFloating">false</item>
</style>
전체 이미지 활동.java
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setLayout(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
setContentView(R.layout.image_view);
}
도움이 되었으면 좋겠습니다.감사합니다!!
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//to remove "information bar" above the action bar
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
//to remove the action bar (title bar)
getSupportActionBar().hide();
}
상태 표시줄과 수행 표시줄을 모두 숨기고 활동을 전체 화면으로 만들려면 활동 코드에서 다음 코드를 사용합니다.onResume()
아니면onWindowFocusChanged()
방법:
@Override
protected void onResume() {
super.onResume();
View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN);
}
자세한 정보는 다음 링크에서 확인할 수 있습니다.
- https://developer.android.com/training/system-ui/immersive#EnableFullscreen
- 탐색 및 상태 표시줄이 없는 전체 화면
- 안드로이드 폰에서 소프트 키 바를 숨기는 방법?
참고: 이 스레드에서 제공하는 xml 솔루션을 사용하면 상태 표시줄만 숨길 수 있고 탐색 표시줄은 숨길 수 없습니다.
이 테마는 API 21(포함) 이후에만 작동합니다.상태 표시줄과 탐색 표시줄을 모두 투명하게 만듭니다.
<style name="TransparentAppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:navigationBarColor">@android:color/transparent</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
parent="@style/테마여야 합니다.앱 컴뱃.라이트.노액션바"
<style name="Theme.AppCompat.Light.NoActionBar.FullScreen"
parent="@style/Theme.AppCompat.Light.NoActionBar">
<item name="android:windowNoTitle">true</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
requestWindowFeature(Window.FEATURE_NO_TITLE);
다음을 시도해 볼 수 있습니다.
<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowFullscreen">true</item>
</style>
AppCompat에서 제목 표시줄 제거하기
@Override
protected void onCreate(Bundle savedInstanceState) {
supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
}
<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
이것만?
<style name="Theme.AppCompat.Light.NoActionBar.FullScreen">
<item name="android:windowFullscreen">true</item>
</style>
언급URL : https://stackoverflow.com/questions/20653305/full-screen-theme-for-appcompat
'it-source' 카테고리의 다른 글
CAP 정리 - 가용성 및 파티션 공차 (0) | 2023.10.03 |
---|---|
SQL Server에서 잘라내기(sysdate) (0) | 2023.10.03 |
WP REST API를 통한 연락처 양식 7 사용 (0) | 2023.09.28 |
부트스트랩 4 - 특정 탭 링크 (0) | 2023.09.28 |
서로 다른 행에서 서로 다른 조건을 만족하는 값 선택 (0) | 2023.09.28 |