0
如何直接在UI類中使用Anko DSL製作Android工具欄菜單? 不想在我的Activity類中編寫偵聽器。Kotlin:如何使用Anko DSL製作工具欄菜單?
關於我下面給出的答案,有沒有辦法避免XML recource文件來描述菜單項?
如何直接在UI類中使用Anko DSL製作Android工具欄菜單? 不想在我的Activity類中編寫偵聽器。Kotlin:如何使用Anko DSL製作工具欄菜單?
關於我下面給出的答案,有沒有辦法避免XML recource文件來描述菜單項?
在的AndroidManifest.xml文件選擇主題沒有動作條
創建您的菜單XML資源文件和往常一樣:
<menu ...>
<item
android:id="@+id/action1"
android:title="Action1"/>
<item
android:id="@+id/action2"
android:title="Action2"/>
</menu>
對於菜單的每個項目創建自定義activites
創建主要活動類別:
class ActivityMain : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
ActivityMainUI().setContentView(this)
//do not use setActionBar() or setSupportActionBar()
}
// do not override onOptionsItemSelected() and onCreateOptionsMenu() here
}
class ActivityMainUi: AnkoComponent<ActivityMain> {
override fun createView(ui: AnkoContext<ActivityMain>) = with(ui) {
coordinatorLayout {
// justify layout
appBarLayout {
toolbar {
// justify your toolbar
inflateMenu(R.menu.your_menu_xml_resource)
onMenuItemClick { item ->
when (item!!.itemId) {
R.id.action_1 -> {
startActivity<Activity1>()
true
}
R.id.action_2 -> {
startActivity<Activity2>()
true
}
else -> false
}
}
}.lparams(width = matchParent, height = wrapContent)
}.lparams(width = matchParent, height = wrapContent)
// put other views
}
}
}