2016-12-30 74 views
3

我正在創建帶有徽章和打印機列表的購物車菜單圖標,但是我發現在API 23菜單圖標正在變得不需要的背景。菜單項圖標重疊在API 23

enter image description here

activity_menu.xml

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 


    <item 
     android:id="@+id/action_cart1" 
     android:icon="@drawable/ic_menu_cart" 
     android:title="Cart" 
     app:showAsAction="always" /> 
</menu> 

ic_menu_cart.xml

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:drawable="@drawable/cart" 
     android:gravity="center" /> 

    <!-- set a place holder Drawable so android:drawable isn't null --> 
    <item 
     android:id="@+id/ic_badge" 
     android:drawable="@drawable/cart" /> 
</layer-list> 
下面

是更新車數的代碼。

public static void setBadgeCount(Context context, LayerDrawable icon, String count) { 

     BadgeDrawable badge; 

     // Reuse drawable if possible 
     Drawable reuse = icon.findDrawableByLayerId(R.id.ic_badge); 
     if (reuse != null && reuse instanceof BadgeDrawable) { 
      badge = (BadgeDrawable) reuse; 
     } else { 
      badge = new BadgeDrawable(context); 
     } 

     badge.setCount(count); 
     icon.mutate(); 
     icon.setDrawableByLayerId(R.id.ic_badge, badge); 
    } 

我已經爲不同的API創建了xml,但沒有工作。 我想刪除背景。 請幫助!

回答

1

據我所知,你必須添加徽章數量和圖標。因此,請在下面添加它的方式。

app:actionLayout="@layout/notification_layout" 
<item>

和創建notification_layout.xml佈局和設置你想要的。

所以你的activity_main.xml看起來像這樣。

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 


    <item 
     android:id="@+id/action_cart1" 
     android:orderInCategory="100" 
     android:icon="@drawable/ic_menu_cart" 
     android:title="Cart" 
     app:showAsAction="always" 
     android:title="ABD" 
     app:actionLayout="@layout/notification_layout" /> 
</menu> 

notification_layout.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="40.0dip" 
    android:layout_height="wrap_content" 
    android:layout_gravity="right" 
    android:clickable="false" 
    android:focusable="false" 
    android:focusableInTouchMode="false"> 
<!-- Menu Item Image --> 
    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:clickable="false" 
     android:focusable="false" 
     android:focusableInTouchMode="false" 
     android:scaleType="center" 
     android:src="@drawable/ic_navigation_cart_white" /> 
<!-- Badge Count --> 
    <TextView 
     android:id="@+id/actionbar_notifcation_textview" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_marginTop="12.0dip" 
     android:layout_marginRight="5.0dip" 
     android:gravity="center" 
     android:minHeight="15.0dip" 
     android:minWidth="15.0dip" 
     android:paddingLeft="3.0dip" 
     android:paddingRight="3.0dip" 
     android:textSize="10.0sp" 
     android:background="@drawable/TextView_design" 
     android:textColor="@android:color/white" /> 
</RelativeLayout> 

輸出像這樣:

enter image description here

+0

你能不能幫我notification_layout.xml代碼。 –

+0

我需要您在圖像中顯示的內容 –

+0

@KuldeepDubey請參閱我添加我的'notificaton.layout.xml'文件現在更改圖像並查看結果。 – Ironman