我有一个由Image和textView组成的MenuItem:
在4.3上显示良好但在4.0 / 4.1上显示不好(与ActionBarCompat相同):
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);
}
答案 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
}