Android工具栏菜单项永远不会显示,但会进入溢出状态

我正在尝试实现Android在v21中提供的工具栏,其中菜单项设置为显示“ifroom”,但菜单项总是折叠到溢出中。 如果菜单项设置为“始终”,则它们也会陷入溢出。

我希望有人能指出需要改变的地方,以使其行为正确。 我想找到一个解决方案,它不使用appcompat来实现它,因为我可以看到大多数其他解决方案。

下面我附上了我的工具栏布局,菜单布局和在模拟器中看起来如何的屏幕截图,以及创建工具栏的主要kotlin文件。

从模拟器进行屏幕截图

在这里输入图像描述

toolbar_main.xml

<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> <android.widget.Toolbar android:id="@+id/my_toolbar" android:layout_width="match_parent" android:layout_height="?android:attr/actionBarSize" app:layout_constraintTop_toTopOf="parent" app:layout_constraintLeft_toLeftOf="parent" android:elevation="4dp" android:theme="@style/ToolbarTheme" android:popupTheme="@android:style/ThemeOverlay.Material.Light" tools:layout_editor_absoluteY="0dp" tools:layout_editor_absoluteX="0dp" /> </android.support.constraint.ConstraintLayout> 

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/miCompose" android:icon="@drawable/ic_mail_outline_black_24dp" android:title="@string/menu_compose" android:orderInCategory="2" app:showAsAction="ifRoom" /> <item android:id="@+id/miProfile" android:icon="@drawable/ic_perm_identity_black_24dp" android:title="@string/menu_profile" android:orderInCategory="1" app:showAsAction="ifRoom"/> </menu> 

mainActivity.kt

 import android.app.Activity import android.os.Bundle import android.util.Log import android.view.Menu import android.widget.Toolbar import android.view.View import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.activity_main.view.* class MainActivity : Activity() { val TAG: String = "MainActivity" override fun onCreate(savedInstanceState: Bundle?) { Log.d(TAG, "onCreate ") super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val myToolbar = findViewById<View>(R.id.my_toolbar) as Toolbar myToolbar.setTitle(R.string.title_activity_main) myToolbar.inflateMenu(R.menu.menu_main) } } 

你正在使用所有的Android API,不支持库。
所以请尝试使用android代替app

 android:showAsAction="ifRoom"