[英]Custom menu item in Toolbar
我正在嘗試為我的項目菜單創建自定義布局。 我需要一個帶有圖像的圖標來顯示這樣的購物車:
我創建了一個自定義的相對布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="48dp"
android:layout_height="fill_parent"
android:layout_gravity="right" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:clickable="true"
android:src="@drawable/ic_shopping_cart"/>
<TextView
android:id="@+id/counter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:padding="8dp"
android:text="5"
android:textSize="15sp"
android:textColor="#ffffff" />
</RelativeLayout>
和項目菜單:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/icon_shopping_cart"
android:actionLayout="@layout/shopping_cart"
android:title="@string/shopping_icon_description"
app:showAsAction="always" />
</menu>
有誰知道怎么做?
提前致謝
編輯:
主活動.java
public class Prueba extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_agroquimicos);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
toolbar.inflateMenu(R.id.shopping_cart);
}
}
如果你想在工具欄中使用計數器試試ActionBarMenuItemCounter ,它對我有用
private Drawable buildCounterDrawable(int count, int backgroundImageId) {
LayoutInflater inflater = LayoutInflater.from(this);
View view = inflater.inflate(R.layout.counter_menuitem_layout, null);
view.setBackgroundResource(backgroundImageId);
if (count == 0) {
View counterTextPanel = view.findViewById(R.id.counterValuePanel);
counterTextPanel.setVisibility(View.GONE);
} else {
TextView textView = (TextView) view.findViewById(R.id.count);
textView.setText("" + count);
}
view.measure(
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
view.setDrawingCacheEnabled(true);
view.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH);
Bitmap bitmap = Bitmap.createBitmap(view.getDrawingCache());
view.setDrawingCacheEnabled(false);
return new BitmapDrawable(getResources(), bitmap);
}
你的設置是正確的,現在只有你需要的東西..
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.your_menu_file, menu);
final MenuItem item = menu.findItem(R.id.icon_shopping_cart);
TextView cartCount = (TextView) item.getActionView().findViewById(R.id.counter);
cartCount.setText("10");
return true;
}
並刪除這一行toolbar.inflateMenu(R.id.shopping_cart);
我會將您的購物車保存為圖像並按如下方式實現您的菜單布局:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/icon_shopping_cart"
android:icon="@drawable/shopping_cart"
android:title="@string/shopping_icon_description"
android:showAsAction="always" />
</menu>
並將其膨脹為您的活動/片段:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.menu_layout, menu);
}
您可以使用其他圖像並將其用作圖標
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.