답변:
스타일을 사용할 수 있지만 기본 테마 선언에 추가해야합니다.
<resources>
<!-- Base application theme. -->
<style name="Your.Theme" parent="@android:style/Theme.Holo">
<!-- Pointer to Overflow style ***MUST*** go here or it will not work -->
<item name="android:actionOverflowButtonStyle">@style/OverFlow</item>
</style>
<!-- Styles -->
<style name="OverFlow" parent="@android:style/Widget.Holo.ActionButton.Overflow">
<item name="android:src">@drawable/ic_action_overflow</item>
</style>
</resources>
동적으로 변경할 수도 있습니다. 여기에 대해 자세히 설명합니다.
parent="Widget.Sherlock.ActionButton.Overflow"
parent="@style/Widget.AppCompat.ActionButton.Overflow"
나를 위해 일하는 것 같습니다.
작동하지 않는 사람들을 위해 "android :"네임 스페이스없이 이것을 시도하십시오.
<item name="actionOverflowButtonStyle">@style/OverFlow</item>
styles.xml에서 Actionbar의 사용자 정의 오버 플로우 아이콘을 변경하십시오.
<resources>
<!-- Base application theme. -->
<style name=“MyTheme" parent="@android:style/Theme.Holo">
<!-- Pointer to Overflow style DONT forget! -->
<item name="android:actionOverflowButtonStyle">@style/MyOverFlow</item>
</style>
<!-- Styles -->
<style name="MyOverFlow" parent="@android:style/Widget.Holo.ActionButton.Overflow">
<item name="android:src">@drawable/ic_your_action_overflow</item>
</style>
</resources>
AndroidManifest.xml의 애플리케이션 태그에 사용자 정의 테마 "MyTheme"를 넣습니다.
<application
android:name="com.example.android.MainApp"
android:theme="@style/AppTheme">
</application>
즐기세요. @. @
에서 무엇을하려고하더라도 어떤 styles.xml
솔루션도 효과가 없었습니다. 결국 AppCompat 23+가있는 경우 실제로 작동하는 가장 쉬운 방법입니다.
toolbar.setOverflowIcon(drawable);
@adneal의 대답 은 정확합니다 (따라서 이것은 확장 할 커뮤니티 위키 설명 일뿐입니다).
댓글 중 하나는이를 수행하는 방법에 대해 오해가있을 수 있다고 제안했기 때문에 제 대답은 오버플로 아이콘 이미지를 재정의하는 방법에 대한 또 다른 예일뿐입니다.
아래 코드는 ADT 샘플 New Android Project의 템플릿 스타일을 기반으로합니다. 코드는 폴더 의 styles.xml
파일에서 가져 옵니다 res/values
.
<style name="AppBaseTheme" parent="android:Theme.Light">
<!--
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<item name="android:actionOverflowButtonStyle">@style/OverflowMenuButton</item>
</style>
<style name="OverflowMenuButton" parent="@android:style/Widget.Holo.ActionButton.Overflow">
<item name="android:src">@drawable/ic_menu_moreoverflow</item>
</style>
위의 코드가하는 일은 기본 오버플로 아이콘을라는 이름의 드로어 블로 대체하는 것입니다 ic_menu_moreoverflow
. 빠르게 테스트하고 싶다면 앱의 런처 아이콘 파일 이름을 사용하면 작동 방식이 명확 해집니다.
ActionBar
스타일 을 이해하려고 할 때 유용한 리소스 는 다음과 같습니다.
여기에서 오버플로 아이콘에 사용할 특정 색상을 정의 할 수 있으며 ZIP 파일에 올바른 styles.xml
파일 이 포함됩니다 .
긴 검색 후 내가 따라야 할 지침을 얻었습니다.
theme.xml의 테마 내에 항목을 추가하십시오.
<item name="android:actionBarWidgetTheme">@style/widgetStyle</item>
<item name="android:actionOverflowButtonStyle">@style/MyActionButtonOverflow</item>
theme.xml을 의미하는 동일한 파일의 스타일에 아이콘을 추가하십시오.
<style name="MyActionButtonOverflow" parent="android:style/Widget.Holo.ActionButton.Overflow">
<item name="android:src">@drawable/icon_menu</item>
</style>
변경하려는 사용자 정의 아이콘을 확인하십시오.
그것은 나를 위해 일했습니다