3

我的应用程序的原色是某种黄色。操作栏中的 ShareActionProvider 有一种微调器,按下时会显示默认的全息蓝色。

为了使操作栏风格连贯,我需要让分享按钮的背景在按下时变为黄色。如何做到这一点?

我正在使用标准操作栏(不兼容或 sherlock)

那一个不起作用:

shareMenuItem.getActionView().setBackgroundResource(R.drawable.spinner_background_ab_webcamhd_custom_ab);

并且关于样式化 ShareActionProvider 的所有问题都没有得到任何答案:(

4

4 回答 4

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>

然后我使用了提示的答案给出的弹出窗口的自定义样式:

    <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">

在此处输入图像描述

于 2015-09-11T13:43:18.827 回答
2

我将此添加到我的主题中并且它有效:

<item name="listPopupWindowStyle">@style/Widget.AppCompat.Light.ListPopupWindow</item>

所以如果你想定制你需要创建自己的风格的颜色

于 2013-11-15T16:11:42.257 回答
1

对于任何有同样问题的人来说,这对我有用:

- 在 AppTheme 添加:

    <item name="listPopupWindowStyle">@style/PopupListStyle</item>

- 为列表弹出创建新样式:

    <style name="PopupListStyle" parent="@style/Widget.AppCompat.Light.ListPopupWindow">
       <item name="android:popupBackground">@color/list_popup_bg</item>
    </style>
于 2015-04-24T09:49:46.393 回答
1

ShareActionProvider使用标准的操作栏背景吗?如果是这样,您可以通过覆盖主题中使用的资源来控制它。例如

<style name="AppTheme" parent="android:Theme.Holo.Light">
    <item name="android:actionBarItemBackground">@drawable/your_selector</item>
</style>

有关如何构建 XML Selector Drawable 的示例,请查看系统使用的示例,如下所示

更新

这个自己怎么找。

  1. 查找来源SharedActionProvider并查看onCreateActionView()
  2. 按照ActivityChooserView哪个是在 中View创建的onCreateActionView()
  3. ActivityChooserView在这种情况下,观察 的构造函数中膨胀的布局R.layout.activity_chooser_view
  4. 查找源代码R.layout.activity_chooser_view并找到用于按钮的布局,在本例中为@+id/expand_activities_button
  5. 观察用于背景的资源,在这种情况下,android:background="?android:attr/actionBarItemBackground"
于 2013-10-02T12:58:56.527 回答