准备工作
1.在 build.gradle 添加依赖
1
| ext.anko_version = '0.10.1'
|
1
| apply plugin: 'kotlin-android-extensions'
|
1
| compile "org.jetbrains.anko:anko-commons:$anko_version"
|
2.将 AppTheme 改为继承 noActionBar
1 2 3 4 5 6
| <style name="AppTheme" parent="Theme.AppCompat.NoActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style>
|
编辑 activity_main.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.zyqzyq.myapplication.MainActivity"> <android.support.v7.widget.Toolbar android:id="@+id/mToolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="?attr/actionBarSize" android:background="@color/colorPrimary" app:contentInsetStart="0dp"> <TextView android:id="@+id/mTitle" android:layout_width="match_parent" android:layout_height="match_parent" android:text="标题" android:textSize="36sp" android:gravity="center"/> </android.support.v7.widget.Toolbar> <TextView android:id="@+id/mTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" android:layout_centerInParent="true"/> </RelativeLayout>
|
修改 MainAcitivity.kt
在 MainActivity.kt 中添加如下代码
1 2 3 4 5 6 7 8 9
| //将mtoolbar设置为actionbar setSupportActionBar(mToolbar) //APP 图标 mToolbar.setLogo(R.drawable.ic_launcher) //APP 标题 mToolbar.title = "" mTitle.text = "标题居中" //APP 正文内容 mTextView.text = "正文内容"
|
新建 /res/menu/menu_toolbar.xml
1 2 3 4 5 6 7 8 9 10 11
| <?xml version="1.0" encoding="utf-8"?> <menu xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/app_bar_search" android:icon="@drawable/ic_search_black_24dp" android:title="Search" android:actionViewClass="android.widget.SearchView" app:showAsAction="ifRoom"/> <item android:title="Item" app:showAsAction="never"/> <item android:title="Item" app:showAsAction="never"/> </menu>
|
将 menu 加入 toolbar 并在 MainActivity.kt 中添加监听。
1 2 3 4 5 6 7 8 9 10
| //APP 菜单栏 mToolbar.inflateMenu(R.menu.menu_toolbar) //菜单栏监听 mToolbar.setOnMenuItemClickListener { when(it.itemId){ R.id.app_bar_search -> toast("search") else -> toast("click something else") } true }
|
菜单栏未正常显示,注释 setSupportActionBar(mToolbar)后可以正常显示(暂未找到原因,有懂的希望告知下,谢谢)
运行代码后成功界面
(莫名的发现标题不居中了,注销了 setSupportActionBar 以后居中正常显示,感觉有毒,还需在研究研究)