我在菜单项上增加了自定义布局以显示计数
I have inflate custom layout on menu Item to show count
我将自定义布局扩展到菜单向上栏以显示购物车项目中的计数,我通过项目点击实现。如何在此处的菜单中显示或设置计数?我有点困惑。如果可能的话,有什么想法吗?
我试过了
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.home_screen, menu);
final Menu m = menu;
final MenuItem item = menu.findItem(R.id.nav_cart);
item.getActionView().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(HomeScreen.this, "hello", Toast.LENGTH_SHORT).show();
}
});
自定义布局 XML。所以在这里我想设置徽章计数,但是如何?
文件
<RelativeLayout
android:id="@+id/cart"
android:layout_width="wrap_content"
android:layout_marginTop="15dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/cart_bag"
android:layout_width="25dp"
android:layout_height="25dp"
app:srcCompat="@drawable/bag" />
<com.nex3z.notificationbadge.NotificationBadge
android:id="@+id/badge"
android:layout_width="20dp"
android:layout_alignParentTop="true"
android:layout_alignTop="@id/cart_bag"
android:layout_height="20dp"
app:nbBackground="@drawable/badge_bg_with_shadow"
android:layout_marginLeft="15dp"
app:nbMaxTextLength="2"/>
</RelativeLayout>
菜单项
android:id="@+id/nav_cart"
android:orderInCategory="15"
android:title="@string/action_settings"
app:actionLayout="@layout/custom_layout_cart"
app:showAsAction="always"
尝试以编程方式添加自定义布局..像这样
final MenuItem item = menu.findItem(R.id.nav_cart);
MenuItemCompat.setActionView(item, R.id.custom_layout_cart);
actionView = MenuItemCompat.getActionView(item);
ImageView btn = (ImageView) actionView.findViewById(R.id.cart_bag);
NotificationBadge count = (TextView) actionView.findViewById(R.id.badge);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(HomeScreen.this, "hello", Toast.LENGTH_SHORT).show();
}
});
尝试从您的 custom-badge 布局中将计数值设置为文本视图。
val tvCartCount = actionView.findViewById(R.id.your_cart_count_id) as TextView
tvCartCount.text = "Your Cart Value"
您可以参考以便更好地理解。
我将自定义布局扩展到菜单向上栏以显示购物车项目中的计数,我通过项目点击实现。如何在此处的菜单中显示或设置计数?我有点困惑。如果可能的话,有什么想法吗?
我试过了
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.home_screen, menu);
final Menu m = menu;
final MenuItem item = menu.findItem(R.id.nav_cart);
item.getActionView().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(HomeScreen.this, "hello", Toast.LENGTH_SHORT).show();
}
});
自定义布局 XML。所以在这里我想设置徽章计数,但是如何?
文件
<RelativeLayout
android:id="@+id/cart"
android:layout_width="wrap_content"
android:layout_marginTop="15dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/cart_bag"
android:layout_width="25dp"
android:layout_height="25dp"
app:srcCompat="@drawable/bag" />
<com.nex3z.notificationbadge.NotificationBadge
android:id="@+id/badge"
android:layout_width="20dp"
android:layout_alignParentTop="true"
android:layout_alignTop="@id/cart_bag"
android:layout_height="20dp"
app:nbBackground="@drawable/badge_bg_with_shadow"
android:layout_marginLeft="15dp"
app:nbMaxTextLength="2"/>
</RelativeLayout>
菜单项
android:id="@+id/nav_cart"
android:orderInCategory="15"
android:title="@string/action_settings"
app:actionLayout="@layout/custom_layout_cart"
app:showAsAction="always"
尝试以编程方式添加自定义布局..像这样
final MenuItem item = menu.findItem(R.id.nav_cart);
MenuItemCompat.setActionView(item, R.id.custom_layout_cart);
actionView = MenuItemCompat.getActionView(item);
ImageView btn = (ImageView) actionView.findViewById(R.id.cart_bag);
NotificationBadge count = (TextView) actionView.findViewById(R.id.badge);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(HomeScreen.this, "hello", Toast.LENGTH_SHORT).show();
}
});
尝试从您的 custom-badge 布局中将计数值设置为文本视图。
val tvCartCount = actionView.findViewById(R.id.your_cart_count_id) as TextView
tvCartCount.text = "Your Cart Value"
您可以参考