개발모음집

액티비티를 다이얼로그처럼 보이게 하기 (테마변경후 에러, 테마 Dialog로 변경후 액션바 없애기) 본문

Android

액티비티를 다이얼로그처럼 보이게 하기 (테마변경후 에러, 테마 Dialog로 변경후 액션바 없애기)

void 2017. 6. 20. 15:19



액티비티를 다이얼로그처럼 보이게 해야하는 경우가 생겼다.


java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity


테마 변경을 했더니 위와 같은 에러가 나와 해당 에러에 대해 찾아봤다.


내가 다이얼로그로 만들려는 액티비티가 AppCompatActivity를 상속받고 있기 때문에 테마도 AppCompat으로 시작하는 테마를 사용해야한다고 한다.

<activity android:name=".LinkDialog"
android:theme="@style/@style/Theme.AppCompat.DayNight.Dialog.Alert"/>

theme를 바꿔봤다. 하지만 Alert테마같은 경우 액션바가 있어서 모양이 이상하다.


테마를 커스텀해준다.

<style name="Theme.MyDialog" parent="Theme.AppCompat.DayNight.Dialog.Alert">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
</style>

dialog를 상속받는 테마를 만들어주고 

<activity android:name=".LinkDialog"
android:theme="@style/Theme.MyDialog"/>


매니페스트에서 액티비티의 테마를 지정해주면 다이얼로그처럼 보인다.