gpt4 book ai didi

java - 如何控制 Android 工具栏中的菜单位置

转载 作者:行者123 更新时间:2023-11-30 00:31:43 25 4
gpt4 key购买 nike

我想在 android xml 代码中更改我膨胀的菜单项的重力,但我找不到任何属性来解决问题。 我想要在 Toolbar 角的 left 侧和 right 侧的另一个项目。

大家有什么想法吗?

这是我现在的状态:

screenshot of 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>

最佳答案

使用工具栏导航item(LEFT)关闭项和选项菜单(RIGHT) 用于 saveNote 项目。

关闭:

You can use Toolbar navigation item as dismiss action. Set close icon as Toolbar navigation icon by using Toolbar.setNavigationIcon(). To handle the click event, add NavigationOnClickListener to Toolbar.

保存笔记:

Inflate menu XML to Toolbar using Toolbar.inflateMenu(). To handle saveNote item click event, add OnMenuItemClickListener to Toolbar.

按照以下步骤操作:

1.menu XML 中删除 dismiss 项。

// 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. 在您的 Activity 中,对dismisssaveNote 操作进行以下更改。

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;
}
});


.............
.......................
}
}

输出:

enter image description here

希望对你有帮助~

关于java - 如何控制 Android 工具栏中的菜单位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44224355/

25 4 0