티스토리 뷰
Stack Overflow에 자주 검색, 등록되는 문제들과 제가 개발 중 찾아 본 문제들 중에서 나중에도 찾아 볼 것 같은 문제들을 정리하고 있습니다.
Stack Overflow에서 가장 먼저 확인하게 되는 가장 높은 점수를 받은 Solution과 현 시점에 도움이 될 수 있는 가장 최근에 업데이트(최소 점수 확보)된 Solution을 각각 정리하였습니다.
아래 word cloud를 통해 이번 포스팅의 주요 키워드를 미리 확인하세요.
Fullscreen Activity in Android?
안드로이드에서 전체 화면 액티비티 만드는 방법?
문제 내용
How do I make an activity full screen? Without the notification bar.
상태 표시줄 없이 액티비티를 전체 화면으로 만드는 방법은 무엇인가요?
높은 점수를 받은 Solution
You can do it programatically:
프로그래밍으로 할 수 있습니다:
public class ActivityName extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// remove title
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main);
}
}
Or you can do it via your AndroidManifest.xml
file:
또는 AndroidManifest.xml 파일을 통해 할 수 있습니다:
<activity android:name=".ActivityName"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
Edit:
편집:
If you are using AppCompatActivity then you need to add new theme
AppCompatActivity를 사용하는 경우 새로운 테마를 추가하고 사용해야합니다.
<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>
and then use it.
그리고 사용하세요.
<activity android:name=".ActivityName"
android:label="@string/app_name"
android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen"/>
Thanks to https://stackoverflow.com/a/25365193/1646479
https://stackoverflow.com/a/25365193/1646479 에 감사드립니다.
가장 최근 달린 Solution
For AndroidX
Android X용
1. Transparent Statusbar
1. 투명 상태 표시줄
window?.decorView?.systemUiVisibility = (View.SYSTEM_UI_FLAG_LAYOUT_STABLE
or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN)
window.statusBarColor = Color.TRANSPARENT
2. Transparent Statusbar & Bottomnav bar
2. 투명 상태 표시줄 및 하단 네비게이션 표시줄
window.setFlags(
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
);
3. Hide Statusbar
3. 상태 표시줄 숨기기
Recommended Compat solution for API 30+ (inclusive backwards compatibility)
API 30+ (포함된 하위 호환성)에 대한 권장 호환 솔루션
val windowInsetsController =
WindowCompat.getInsetsController(window, window.decorView) ?: return
windowInsetsController.systemBarsBehavior =
WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
windowInsetsController.hide(WindowInsetsCompat.Type.statusBars())
https://developer.android.com/training/system-ui/immersive
4. Hide Statubar & Bottomnav bar
4. Statubar & Bottom nav bar 숨기기
API 레벨 30:
SystemUiVisibility flags are deprecated. Use WindowInsetsController instead.
SystemUiVisibility 플래그는 사용이 중지되었습니다. 대신 WindowInsetsController를 사용하십시오.
Same as 3., just use WindowInsetsCompat.Type.systemBars()
3번과 동일하며 WindowInsetsCompat.Type.systemBars()만 사용하면 됩니다.
val actionBar: ActionBar? = supportActionBar
if (actionBar != null) actionBar.hide()
val windowInsetsController =
WindowCompat.getInsetsController(window, window.decorView) ?: return
windowInsetsController.systemBarsBehavior =
WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
windowInsetsController.hide(WindowInsetsCompat.Type.systemBars())
https://developer.android.com/training/system-ui/immersive
Where to put this code ?
이 코드를 어디에 놓아야 하나요?
override fun onCreate(savedInstanceState: Bundle?) {
/* Put above code here ..... */
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_slider)
}
Note
메모
- I checked this code in Pixel 3A emulator
- Maybe customise android OS not support
- set style
<style name="Theme.FullScreen" parent="Theme.MaterialComponents.DayNight.NoActionBar">
Pixel 3A 에뮬레이터에서이 코드를 확인했습니다.
사용자 정의 Android OS가 지원되지 않을 수도 있습니다.
스타일 <style name="Theme.FullScreen" parent="Theme.MaterialComponents.DayNight.NoActionBar">을(를) 설정하세요.
'개발 > 안드로이드' 카테고리의 다른 글
View 타입 객체의 setTag()와 getTag() 메서드의 주요 목적 (0) | 2022.12.20 |
---|---|
XML onClick를 사용하여 Fragment에서 버튼 클릭을 처리하는 방법 (0) | 2022.12.20 |
안드로이드에서 인텐트를 통해 구글 맵스 경로 안내 시작하기 (0) | 2022.12.19 |
사용자가 선택하기 전에 Spinner에서 onItemSelected가 실행되지 않게 하는 방법 (0) | 2022.12.19 |
'java.lang.IllegalStateException: Not allowed to start service Intent' 오류 수정하기 (0) | 2022.12.19 |