簡體   English   中英

按下時更改Android ShareActionProvider背景顏色

[英]Change Android ShareActionProvider background color when pressed

我的應用程序的主要顏色是某種黃色。 操作欄中的ShareActionProvider有一種微調器,按下時會顯示默認的全藍色。

為了使操作欄樣式連貫,我需要按下共享按鈕背景為黃色。 怎么實現呢?

我正在使用標准操作欄(沒有兼容性或sherlock)

那個不起作用:

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

關於樣式ShareActionProvider的問題沒有得到任何答案:(

我想要白色背景的白色分享按鈕彈出。 首先,我將主要主題中的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答案給出的彈出窗口的自定義樣式:

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

在此輸入圖像描述

我將此添加到我的主題中並且它有效:

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

因此,如果您想自定義創建自己風格所需的顏色

ShareActionProvider使用標准的Action Bar背景嗎? 如果是這樣,您可以通過覆蓋主題中使用的資源來控制它。 例如

<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 ,它是在onCreateActionView()創建的View
  3. 觀察ActivityChooserView的構造函數中膨脹的布局,在本例中為R.layout.activity_chooser_view
  4. 查找R.layout.activity_chooser_view源代碼並找到用於該按鈕的布局,在本例中為@+id/expand_activities_button
  5. 觀察用於后台的資源,在這種情況下, android:background="?android:attr/actionBarItemBackground"

對於有同樣問題的人來說,這對我有用:

-in AppTheme添加:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM