개발 중에 팝업창을 만들어서 적용할 일이 있었다
착착 잘 만들어지는 와중에 오류가 있었는데 바로 Activity의 Title Bar가 사라지지 않고 계속 적용되고 있었던 것
기존코드
기존에는 dialog처럼 띄워주려고 다음과 같은 코드를 사용하고 있었다.
Theme는 한 개만 설정할 수 있기 때문에 여기서 Dialog로 설정하고
<activity android:name=".PopupActivity"
android:theme="@style/Theme.AppCompat.Dialog"/>
PopupActivity에서 이렇게 적용을 했었는데 title이 사라지지않고 계속 보이는 오류가 발생했다.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_popup);
두 가지 해결방법을 찾았다.
😎 해결방법 😎
1. AndroidManifest.xml
<activity android:name=".PopupActivity"
android:theme="@style/Theme.Design.NoActionBar"/>
dialog로 사용하겠다고 선언하지 않고 ActionBar를 없애달라고 말하면 TitleBar 가 없어진다.
하지만 배경으로 보이던 기존 Activity도 보이지않고 사라져서 뭔가 팝업의 느낌이 나지를 않는다
마음에 안들어 🤔🤔
2. PopupActivity.java
개인적으로는 이 방법이 더 깔끔해서 마음에 든다
Manifest.xml은 그대로 Dialog 설정으로 유지하고
<activity android:name=".PopupActivity"
android:theme="@style/Theme.AppCompat.Dialog"/>
자바에서 다음과 같이 수정해준다.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_popup);
뭐가 다르냐면 'FEATURE_NO_TITLE' 을 부르는 함수가 다르다
기존 🙄
requestWindowFeature(Window.FEATURE_NO_TITLE);
바뀐 코드 😎
supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
오류의 원인 🤦♀️🤦♂️
기존과 같이 Activity를 상속받았을 경우에는 requstWindowFeature가 동작했다
하지만 AppCompatActivity를 상속받으면 기존의 함수가 동작하지 않고 신규함수를 적용해야 동작한다.
참고 : https://ghj1001020.tistory.com/9
Android 액티비티를 팝업(Popup)으로 띄우기 , 데이터 주고받기
액티비티를 팝업(Popup)으로 띄우기 , 데이터 주고받기 MainActivity.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 public class MainActivity extends Ap..
ghj1001020.tistory.com
참고 : https://soo0100.tistory.com/1029
안드로이드 타이틀 바 및 상태바 없애기.
안드로이드 앱을 만들다 보면, 내 앱에선 타이틀 바 혹은 상태바가 없는 전체 화면으로 보여주고 싶을 때가 있다. 바로 이런 식으로 말이다. 그럼 먼저 타이틀 바를 먼저 없애보자. 여러 방식이
soo0100.tistory.com
'기타 > 오류해결' 카테고리의 다른 글
[시스템프로그래밍] Visual Studio 2022 어셈블리어 개발환경 만들기 (1) | 2022.11.12 |
---|---|
[안드로이드 with 이클립스] Call requires API level 9 (current min is 8) (0) | 2022.08.26 |
[Android with 이클립스] the file dx.jar was not loaded from the SDK folder! (0) | 2022.03.10 |
[Github] Commit 이전 버전으로 돌아가기 - Git reset (0) | 2021.08.19 |
[CMD] netstat 명령문 안될 때 (0) | 2021.06.25 |