5

Araç çubuğuma paylaşım eylemi eklemeye çalışıyorum. Araç çubuğu portakal (veya bu durumda gibi saydam) beyaz metin ve simgelerle olması gerekiyordu, bu yüzden Toolbar olarak bu görüşü kullanıyorum:Araç Çubuğu ShareActionProvider teması daima karanlık

: Ayrıca

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/toolbar" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    android:minHeight="?attr/actionBarSize" 
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
    tools:ignore="UnusedAttribute" /> 

, bu benim app tema beyanı benziyor nasıl ne olursa olsun ben bu stilini değiştirmek nasıl

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

ne alıyorum:

enter image description here

ShareActionProvider'ı Light temasına sahip olmak için nasıl ikna edebilirim?

benim çözüm destek kitaplığı v7'de dayanır
+0

Bence olmanın metin onunla ShareActionProvider bir beyaz arka plan istedik sizin için yardım http://stackoverflow.com/questions/28591447/style-appcompat-v7- toolbar-menu-background – mustafasevgi

+1

Bu işe yaramıyor –

+0

Uygulamayı deneyebilirsiniz: theme = "@ style/ThemeOverlay.AppCompat.Light" ama yukarı ok ve menü simgesini karanlık yapacak. – Harry

cevap

3

, araç çubuğu, ActionBarActivity, Android Studio

1- app:popupTheme="@style/ThemeOverlay.AppCompat.Light"

2- Baz tema Theme.AppCompat.Light.NoActionBar

3- orijinal koduna gitmek emin olun kaldırmak ShareActionProvider, kodunuzun herhangi bir yerinde "ShareActionProvider" yazarak daha sonra v7 birimini içeri aktarın ve sonra farenizi hedefleyin (ctrl + sol tıklama)

4- kodu kopyalayın d Eğer dizini kendi ShareActionProvider için

5- gitmek proje yeni bir java dosyasına yapıştırın ve varsayılan bir siyah olduğu için import android.support.v7.appcompat.R

6- Kendi paylaş simgesini sağlamak varsa bu ithalat kaldırmak Drawable myDrawable = mContext.getResources().getDrawable(R.drawable.ic_share); activityChooserView.setExpandActivityOverflowButtonDrawable(myDrawable);

7- Aktivitenize gitmek ve 3. adımda yapılan ithalat kaldırmak

8- gidin (kendi dosyasını kullanmak için), kayıt onCreateOptionsMenu böyle olmalıdır:

@Override 
public boolean onCreateOptionsMenu(Menu menu) 
{ 
    getMenuInflater().inflate(R.menu.menu_main, menu); 

    MenuItem item = menu.findItem(R.id.menu_item_share); 

    mShareActionProvider = new ShareActionProvider(MainActivity.this); 
    MenuItemCompat.setActionProvider(item , mShareActionProvider); 

    Intent shareIntent = new Intent(); 
    shareIntent.setAction(Intent.ACTION_SEND); 
    shareIntent.putExtra(Intent.EXTRA_TEXT, "Hello World"); 
    shareIntent.setType("text/plain"); 
    mShareActionProvider.setShareIntent(shareIntent); 

    return true; 
} 

9- Son adım menu.xml

app:actionProviderClass= 
      "com.yourPackageName.ShareActionProvider" /> 
+0

Bu işe yaramaz. sınıf, kamuya açık olmayan diğer bazı derslere bağımlıdır –

1

Bu yaptım ve işe yaradı ne düzenlemek unutmayın olduğunu. i siyah

<android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      app:theme="@style/MainTheme" 
      app:layout_collapseMode="pin"/> 

Benim tema

<style name="MainTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="colorPrimary">@color/md_white_1000</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
    <item name="android:textColorPrimary">#ffffff</item> 
    <item name="android:textColorSecondary">#ffffff</item> 
    <item name="android:textColor">@color/md_black_1000</item> 
    <item name="listPopupWindowStyle">@style/PopupListStyle</item> 
</style> 

<style name="PopupListStyle" parent="@style/Widget.AppCompat.Light.ListPopupWindow"> 
    <item name="android:popupBackground">#ffffff</item> 
</style>