我正在尝试在工具栏的右侧创建一个文本菜单,左边距为16dp。有没有人知道如何通过添加到以下代码来设置16dp边距?
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
final MenuItem menuItem = menu.add(Menu.NONE, 100, Menu.NONE, getString(R.string.menu_done));
MenuItemCompat.setShowAsAction(menuItem, MenuItem.SHOW_AS_ACTION_IF_ROOM);
return true;
}
答案 0 :(得分:4)
使用java:
View view = new View(this);
menuItem.setActionView(view);
view.setPadding(16,0,0,0); //left , top ,right , bottom
或XML:
将此样式添加到工具栏中,以获取图标。
<style name="myToolbarStyle" parent="@style/Widget.AppCompat.Toolbar">
<item name="android:paddingLeft">16dp</item>
</style>
当然,如果您有更多商品,则需要为要填充的商品创建特定样式。
答案 1 :(得分:0)
由于@Lazai的答案 我的实施
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
View view = new View(getApplicationContext());
view.setLayoutParams(new ViewGroup.LayoutParams(ViewUtil.dp2px(16),
ViewGroup.LayoutParams.MATCH_PARENT));
MenuItem space = menu.findItem(R.id.space);
space.setActionView(view);
//...
return true;
}
其中ViewUtil.dp2px(16)
是
@SuppressWarnings("unused")
public static int dp2px(int dp) {
float density = Resources.getSystem().getDisplayMetrics().density;
return Math.round(dp * density);
}
工作正常且无法点击