Kotlin工具栏菜单图标问题

我将以下Java代码转换为Kotlin代码。 Android Studio不显示任何错误消息。
但结果是不同的。 我添加了两个模拟器结果的图片。
正如你所看到的Java工作正常,并显示在工具栏中的3点菜单图标。 但是Kotlin代码不起作用。
是否有人知道错误是什么? 希望得到一些帮助。 谢谢。

Java的:

@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_home, container, false); //... setHasOptionsMenu(true); return view; } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater menuInflater) { menuInflater.inflate(R.menu.menu_main, menu); } @Override public void onPrepareOptionsMenu(Menu menu) { MenuItem settings = menu.findItem(R.id.settings); MenuItem singOut = menu.findItem(R.id.sign_out); settings.setVisible(true); singOut.setVisible(false); } 

在这里输入图像描述

科特林:

  override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? { val view = inflater!!.inflate(R.layout.fragment_home, container, false) //... setHasOptionsMenu(true) return view } override fun onCreateOptionsMenu(menu: Menu?, menuInflater: MenuInflater?) { menuInflater!!.inflate(R.menu.menu_main, menu) } override fun onPrepareOptionsMenu(menu: Menu?) { val settings = menu!!.findItem(R.id.settings) val singOut = menu.findItem(R.id.sign_out) settings.isVisible = true singOut.isVisible = false } 

在这里输入图像描述

改变这个:

 settings.isVisible = true singOut.isVisible = false 

至:

 settings.visible = true signOut.visible = true 

查看这个文档的解释: https : //kotlinlang.org/docs/reference/java-interop.html#getters-and-setters

更新 :有问题的实际代码是正确的 – settings.isVisible应该工作。

Interesting Posts