MenuItem在4.0.3上呈现错误

时间:2014-05-22 13:41:58

标签: android android-menu

我有一个由Image和textView组成的MenuItem:

在4.3上显示良好但在4.0 / 4.1上显示不好(与ActionBarCompat相同):

enter image description here

menu_action_cart.xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/actionCart"
    android:actionLayout="@layout/menu_cart_button"
    android:title="@string/action_cart"
    android:showAsAction="always"/>
</menu>

menu_cart_button.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="48dp"
    android:layout_height="fill_parent"
    android:layout_margin="10dp">

        <ImageView
        android:id="@+id/actionIcon"
        android:layout_width="48dp"
        android:layout_height="fill_parent"
        android:clickable="true"
        android:src="@drawable/menu_bag" />


        <TextView
        android:id="@+id/actionbar_notification_text"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center"
        android:paddingTop="10dp"
        android:textColor="@color/red"/>
</RelativeLayout>

爪哇:

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    new MenuInflater(this).inflate(R.menu.menu_action_cart, menu);

    MenuItem menuItem = menu.findItem(R.id.actionCart);
    View badgeLayout = menuItem.getActionView();
    TextView textView = (TextView) badgeLayout.findViewById(R.id.actionbar_notification_text);
    ImageView imageView = (ImageView) badgeLayout.findViewById(R.id.actionIcon);

    textView.setText("1");
    imageView.setEnabled(true);
    textView.setTextColor(getResources().getColor(R.color.orogo_red));
    imageView.setImageResource(R.drawable.menu_bag);

    return super.onCreateOptionsMenu(menu);
}

1 个答案:

答案 0 :(得分:1)

可能没有一个简单的解决方案,这不是Android第一次通过更新打破了菜单操作。 EX:Action bar icon size in Android 4.2 我的建议是找到一个适用于你需要在4.0.3中做什么的布局,并根据android版本,以编程方式调整布局。

if (Build.VERSION.SDK_INT <= 15)
{
   //Load alternate Layout
}