And*_*ole 4 android android-fragments android-studio android-toolbar
我在尝试控制片段中选项菜单的 onclick 时迷失了方向。解决方案太多了,我什至不知道从哪里开始。
我看到一些地方人们告诉我们使用 NavController,其他人告诉我们在 Activity 和片段中使用 onOptionsItemSelected 并覆盖您需要的内容。最重要的是,我们有 androidx.appcompat.widget.Toolbar 甚至不需要膨胀,只需在 XML 文件中使用 app:menu= 并在那里繁荣,但我如何听点击?
<androidx.appcompat.widget.Toolbar
app:menu="@menu/menu_fragment_main">
Run Code Online (Sandbox Code Playgroud)
我让它在活动中工作,但后来不得不使用片段来代替并陷入混乱,我只想菜单像在活动中一样工作。
您需要在片段 onCreate() 方法中调用 setHasOptionsMenu :
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
Run Code Online (Sandbox Code Playgroud)
以下是如何扩展菜单并响应点击:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu, menu);
super.onCreateOptionsMenu(menu, inflater);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.refresh:
//Respond to click
break;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
这是你的 menu.xml :
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/refresh" android:title="Refresh" android:icon="@drawable/ic_action_refresh" />
</menu>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5838 次 |
| 最近记录: |