我想在android xml代码中更改膨胀的菜单项的重力,但我找不到任何属性来解决问题。 我希望left
侧的项目和right
中角落的Toolbar
侧的其他项目。
你有什么想法吗?
这是我目前的状态:
这是我的菜单xml:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/dismis"
android:icon="@drawable/close"
android:title="Done"
app:showAsAction="always"></item>
<item
android:id="@+id/saveNote"
android:icon="@drawable/save"
android:title="Done"
app:showAsAction="always"></item>
</menu>
答案 0 :(得分:1)
对Toolbar
项使用item
导航LEFT
(dismiss
),为menu
项使用选项RIGHT
(saveNote
)
解雇:
您可以使用
Toolbar
导航item
作为dismiss
操作。组 使用close
图标作为Toolbar
导航图标Toolbar.setNavigationIcon()
。要处理click
事件,请添加NavigationOnClickListener
至Toolbar
。
保存注释:
使用
menu
将Toolbar
XML扩展为Toolbar.inflateMenu()
。至 处理saveNote
项click
事件,添加OnMenuItemClickListener
Toolbar
。
按照以下步骤操作:
1。从dismiss
XML中删除menu
项。
// menu_main.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/saveNote"
android:icon="@drawable/save"
android:title="Done"
app:showAsAction="always">
</item>
</menu>
2。在您的活动中,对dismiss
和saveNote
操作执行以下更改。
public class MainActivity extends AppCompatActivity {
// ToolBar
Toolbar mToolBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...........
.....................
// ToolBar
mToolBar = (Toolbar) findViewById(R.id.toolbar);
// Required to use Toolbar as ActionBar
setSupportActionBar(mToolBar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setTitle("StackOverflow");
// Dismiss Action
mToolBar.setNavigationIcon(R.drawable.close);
mToolBar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// Do something
Toast.makeText(getApplicationContext(), "Dismiss", Toast.LENGTH_SHORT).show();
}
});
// SaveNote Action
mToolBar.inflateMenu(R.menu.menu_main);
mToolBar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
if (item.getItemId() == R.id.saveNote)
{
// Do something
Toast.makeText(getApplicationContext(), "Save", Toast.LENGTH_SHORT).show();
}
return true;
}
});
.............
.......................
}
}
<强>输出:强>
希望这会有所帮助〜
答案 1 :(得分:0)