MainActivity.kt
package com.oracle.materialdesignimport android.support.v7.app.AppCompatActivityimport android.os.Bundleimport android.support.design.widget.NavigationViewimport android.support.v4.view.GravityCompatimport android.support.v4.widget.DrawerLayoutimport android.support.v7.widget.Toolbarimport android.view.Menuimport android.view.MenuItemimport android.widget.Toastclass MainActivity : AppCompatActivity() { lateinit var mDrawerLayout: DrawerLayout override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) var toolBar = findViewById<Toolbar>(R.id.toolbar) setSupportActionBar(toolBar) mDrawerLayout = findViewById<DrawerLayout>(R.id.drawer_layout) var actionBar = supportActionBar actionBar?.let { bar -> bar.setDisplayHomeAsUpEnabled(true) bar.setHomeAsUpIndicator(R.drawable.ic_menu) } var navigationView = findViewById<NavigationView>(R.id.nav_view) navigationView.setCheckedItem(R.id.nav_call) navigationView.setNavigationItemSelectedListener(object: NavigationView.OnNavigationItemSelectedListener{ override fun onNavigationItemSelected(item: MenuItem): Boolean { mDrawerLayout.closeDrawers() return true } }) } override fun onCreateOptionsMenu(menu: Menu?): Boolean { menuInflater.inflate(R.menu.toolbar,menu) return true } override fun onOptionsItemSelected(item: MenuItem?): Boolean { when(item!!.itemId) { android.R.id.home -> { mDrawerLayout.openDrawer(GravityCompat.START) } R.id.backup -> { Toast.makeText(this,"You clicked Backup!!", Toast.LENGTH_SHORT).show() } R.id.delete -> { Toast.makeText(this,"You clicked Delete!!", Toast.LENGTH_SHORT).show() } R.id.settings -> { Toast.makeText(this,"You clicked Settings!!", Toast.LENGTH_SHORT).show() } } return true } }
res/layout/nav_header.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="180dp" android:background="?attr/colorPrimary" android:padding="10dp"> <de.hdodenhof.circleimageview.CircleImageView android:id="@+id/icon_image" android:layout_width="70dp" android:layout_height="70dp" android:layout_centerInParent="true" android:src="@drawable/nav_icon" /> <TextView android:id="@+id/username" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:textColor="#FFF" android:text="Tony Green" android:textSize="14sp"/> <TextView android:id="@+id/mail" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@id/username" android:text="tonygreendev@gmail.com" android:textColor="#FFF" android:textSize="14sp"/></RelativeLayout>
res/layout/activity_main.xml
<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" > <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> </FrameLayout> <android.support.design.widget.NavigationView android:id="@+id/nav_view" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="start" app:menu="@menu/nav_menu" app:headerLayout="@layout/nav_header"/></android.support.v4.widget.DrawerLayout>
res/menu/nav_menu.xml
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android"> <group android:checkableBehavior="single"> <item android:id="@+id/nav_call" android:icon="@drawable/nav_call" android:title="Call" /> <item android:id="@+id/nav_friends" android:icon="@drawable/nav_friends" android:title="Friends" /> <item android:id="@+id/nav_location" android:icon="@drawable/nav_location" android:title="Location" /> <item android:id="@+id/nav_mail" android:icon="@drawable/nav_mail" android:title="Mail" /> <item android:id="@+id/nav_task" android:icon="@drawable/nav_task" android:title="Tasks" /> </group></menu>
res/menu/toolbar.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/backup" android:icon="@drawable/ic_backup" android:title="Backup" app:showAsAction="always"/> <item android:id="@+id/delete" android:icon="@drawable/ic_delete" android:title="Delete" app:showAsAction="ifRoom"/> <item android:id="@+id/settings" android:icon="@drawable/ic_settings" android:title="Settings" app:showAsAction="never"/></menu>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.oracle.materialdesign"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:label="Fruits" android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>
res/values/styles.xml
<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style></resources>
成图效果:
Screen Shot 2018-08-07 at 6.36.03 PM.png
作者:FredricZhu
链接:https://www.jianshu.com/p/8c66152c3383