我的应用程序的主要颜色是某种黄色。操作栏中的ShareActionProvider有一种微调器,按下时会显示默认的全蓝色。
要使操作栏样式连贯,我需要按下共享按钮背景为黄色。如何实现?
我正在使用标准操作栏(没有兼容性或sherlock)
那个不起作用:
shareMenuItem.getActionView().setBackgroundResource(R.drawable.spinner_background_ab_webcamhd_custom_ab);
关于样式化ShareActionProvider的问题没有得到任何答案:(
答案 0 :(得分:4)
我想要弹出白色背景的白色分享按钮。首先,我将主要主题中的textColorSecondary更改为白色。
<style name="MainTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/appprimary</item>
<item name="colorPrimaryDark">@color/appprimaryDark</item>
<item name="colorAccent">@color/appaccent</item>
<item name="android:textColorPrimary">#ffffff</item>
<item name="android:textColorSecondary">#ffffff</item>
<item name="android:textColor">#212121</item>
<item name="listPopupWindowStyle">@style/PopupListStyle</item>
</style>
然后我使用了一个自定义样式的弹出窗口,由intips&#39;回答:
<style name="PopupListStyle" parent="@style/Widget.AppCompat.Light.ListPopupWindow">
<item name="android:popupBackground">#ffffff</item>
</style>
然后在我的工具栏中设置了这个主题:
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:minHeight="?attr/actionBarSize"
app:layout_collapseMode="pin"
app:theme="@style/MainTheme">
答案 1 :(得分:2)
我将此添加到我的主题中并且有效:
<item name="listPopupWindowStyle">@style/Widget.AppCompat.Light.ListPopupWindow</item>
因此,如果您想自定义创建自己风格所需的颜色
答案 2 :(得分:1)
ShareActionProvider
是否使用标准的Action Bar背景?如果是这样,您可以通过覆盖主题中使用的资源来控制它。 E.g。
<style name="AppTheme" parent="android:Theme.Holo.Light">
<item name="android:actionBarItemBackground">@drawable/your_selector</item>
</style>
有关如何构建XML Selector Drawable的示例,请查看系统使用的{4}}。
<强>更新强>
如何自己找到它。
SharedActionProvider
的来源并检查onCreateActionView()
。ActivityChooserView
,即View
中创建的onCreateActionView()
。ActivityChooserView
的构造函数中填充的布局,在本例中为R.layout.activity_chooser_view
。R.layout.activity_chooser_view
的来源并找到用于该按钮的布局,在本例中为@+id/expand_activities_button
。android:background="?android:attr/actionBarItemBackground"
答案 3 :(得分:1)
对于遇到同样问题的人来说,这对我有用:
-in AppTheme add:
<item name="listPopupWindowStyle">@style/PopupListStyle</item>
- 为listpopup创建新样式:
<style name="PopupListStyle" parent="@style/Widget.AppCompat.Light.ListPopupWindow">
<item name="android:popupBackground">@color/list_popup_bg</item>
</style>