오늘도 삽질중

Android PopupMenu 백그라운드+텍스트 컬러 변경 본문

안드로이드

Android PopupMenu 백그라운드+텍스트 컬러 변경

Choi3950 2021. 12. 18. 00:46
반응형

Popup Menu의 텍스트와 백그라운드를 동시에 변경하는 방법을 찾아봤는데

생각보다 안나오는거 같다.

 

추후 필요시 시간 절약을 위해 기록을 남깁니다.

 

 

style.xml

 

<style name="MyPopupMenu" parent="@style/Widget.AppCompat.PopupMenu">
    <item name="android:popupBackground">@drawable/popup_menu_bg</item>
    <item name="android:textColor">@color/white</item>
</style>

popup_menu_bg.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <corners android:radius="10dp"/>
    <solid android:color="@color/color_2b3237"/>
    <size android:width="20dp" android:height="16dp"/>

</shape>

굳이 <size> 는 없어도 됩니다.

 

 

Activity.kt

 

val themeWrapper = ContextThemeWrapper(context , R.style.MyPopupMenu)
val popupMenu = PopupMenu(themeWrapper , v, Gravity.END , 0 , R.style.MyPopupMenu)
popupMenu.menu.add(0,0,0, "삭제")
popupMenu.show()

 

 

 

이해가 안되는게 ContextThemeWrapper 에 이미 스타일을 선언했음에도

PopupMenu에 선언을 안해주면 원하는대로 바뀌지가 않는다.

그러므로 모두 스타일을 명시해주자

 

 

 

참고로 PopupMenu item의 Width 를 변경하려고 정말 여러가지 조합으로 진행해봤으나 도저희 바뀌지가 않는다.

스택오버 플로우에도 방법이 없으니 PopupWindow를 써서 커스텀으로 만들라고 하는데..음

방법 아시는분 꼭 공유좀 부탁드립니다!!

 

 

반응형
Comments