2

내가 ShareActionProvider의 드롭 다운리스트에 사용자 정의 배경색을 설정하기 위해 노력하고있어, 나는 이미이 http://jgilfelt.github.io/android-actionbarstylegenerator/는 실행 바 ShareActionProvider에 대한 사용자 정의 배경색은 이미지 I 아래에서 강조 표시된 지점을 볼 수 있듯이

를 사용하여 홀로그램 액션 바의 색상을 변경 DropDownList로 설정 가능 작업 표시 줄 배경색을 주황색으로 변경할 수 있지만 ShareActionProvider 드롭 다운 목록 배경색은 여전히 ​​회색입니다. styles.xml에서 내 테마를 어떻게 편집 할 수 있습니까?

enter image description here

당신의 시간 주셔서 대단히 감사합니다.

+0

이 역시 관심이 있습니다. – m02ph3u5

답변

6

listPopupWindowStyle 속성을 덮어 써야합니다.

외형은 Theme.Holo.Light입니다.

<style name="MyListPopupWindowStyle" parent="@android:style/Widget.Holo.Light.ListPopupWindow"> 
    <item name="android:popupBackground">@drawable/list_popup_background</item> 
</style> 

다음, 드로어 블 list_popup_background를 작성하고 당신은 할 수 있습니다 :

<style name="AppBaseTheme" parent="android:Theme.Holo.Light"> 
    .... 
    <item name="android:listPopupWindowStyle">@style/MyListPopupWindowStyle</item> 
</style> 

지금과 같은 MyListPopupWindowStyle을 정의하여 기본 테마에 이것을 추가합니다.

출력 : 그런데

enter image description here

, 스크린 샷 위, 나는 배경으로 ColorDrawable을 사용했다. 그래서 모서리가 둥글지 않고 그림자가 생기지 않습니다. 이를 위해서는 안드로이드가 사용하는 것과 유사한 9 패치 드로어 블을 생성해야합니다. 모양은 다음과 같습니다

enter image description here

내 ColorDrawable는 다음과 같이 정의했다 :

<drawable name="list_popup_background">#33ffffff</drawable> 

일부 추가 정보를 :

안드로이드 자체가 ListPopupWindow의 배경에 대한 상태 선택 드로어 블을 사용합니다. 비슷한 무언가를 정의하는 것은 좋은 생각이 될 수 있습니다

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_above_anchor="true" android:drawable="@android:drawable/menu_popup_panel_holo_light" /> 
    <item android:drawable="@android:drawable/menu_dropdown_panel_holo_light" /> 

: state_above_anchor & state_below_anchor (기본적으로 도달) : 선택기는 두 가지 상태를 정의합니다.

1

colorBackground 속성을 통해 색조를 표현할 수 있습니다.

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="actionBarTheme">@style/AppTheme.ActionBar</item> 
</style> 

<style name="AppTheme.ActionBar" parent="ThemeOverlay.AppCompat.Dark.ActionBar"> 
    <item name="android:colorBackground">@color/red</item> 
</style>