3

私のアプリの原色はある種の黄色です。アクション バーの ShareActionProvider には一種のスピナーがあり、押すとデフォルトのホロ ブルー カラーが表示されます。

アクション バーのスタイルに一貫性を持たせるには、共有ボタンを押すと背景が黄色になるようにする必要があります。それを達成する方法は?

標準のアクション バーを使用しています (互換性やシャーロックはありません)。

それは機能しません:

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

そして、ShareActionProvider のスタイリングに関する SO に関する質問には、どれも答えがありませんでした:(

4

4 に答える 4

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. ActivityChooserViewView作成された に従ってください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 に答える