日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

Android - 基于Toolbar的Navigation Drawer(Material Design)

發(fā)布時(shí)間:2023/12/10 Android 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android - 基于Toolbar的Navigation Drawer(Material Design) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

  Material Design已經(jīng)推出許久,有許多app都已經(jīng)跟進(jìn)了,這里也介紹下基于Toolbar的Navigation Drawer是如何實(shí)現(xiàn)的。

  • 樣式

  

  • 實(shí)現(xiàn)過(guò)程

  1.?在 activity_asdemo.xml 中加入 DrawerLayout 

  

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/mydrawer"android:layout_width="match_parent"android:layout_height="match_parent"android:fitsSystemWindows="true"tools:context=".ASDemoActivity" ><RelativeLayoutandroid:id="@+id/view_base_bottom"android:layout_width="match_parent"android:layout_height="match_parent" ><include layout="@layout/toolbar" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@+id/mytoolbar"android:layout_margin="20dp"android:background="@android:color/black"android:padding="10dp"android:text="@string/hello_world" /></RelativeLayout><!-- Sid Drawer --><LinearLayoutandroid:id="@+id/drawer_view"android:layout_width="270dp"android:layout_height="match_parent"android:layout_gravity="start"android:background="#6699CC00"android:clickable="true"android:fitsSystemWindows="true"android:orientation="vertical" ></LinearLayout></android.support.v4.widget.DrawerLayout>

  

  2.toolbar.xml代碼

<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.Toolbarxmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/mytoolbar"android:layout_width="match_parent"android:layout_height="wrap_content"android:elevation="10dp"android:background="?attr/colorPrimary"android:minHeight="?attr/actionBarSize" ></android.support.v7.widget.Toolbar>

  3.在ASDemoActivity.java中添加DrawerLayout,部分代碼如下:

private DrawerLayout mDrawerLayout;private ActionBarDrawerToggle mDrawerToggle;@Overrideprotected void onCreate(Bundle savedInstanceState) {……// 打開(kāi) up buttongetSupportActionBar().setDisplayHomeAsUpEnabled(true);mDrawerLayout = (DrawerLayout) findViewById(R.id.mydrawer);//drawer toggle 放入 toolbarmDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,mToolbar, R.string.drawer_open, R.string.drawer_close);mDrawerToggle.syncState();mDrawerLayout.setDrawerListener(mDrawerToggle);}

  完成后,就會(huì)實(shí)現(xiàn)下面的交互效果。

  完整代碼:https://github.com/Syun0929/MyASDemo

  • 最終實(shí)現(xiàn)的交互效果:

  

  • 一些需要注意的細(xì)節(jié)

  1.有一些需要注意的地方需要補(bǔ)充下,目前實(shí)現(xiàn)了的效果中,DrawerLayout是覆蓋status bar的,這樣的好處是DrawerLayou有了更多的空間來(lái)展現(xiàn)內(nèi)容。這個(gè)也是google官方推薦的效果,google官方的app也在逐步替換成這種效果。

  ?

  ??

  2.設(shè)置statusBar顏色

  A.?在 root 層的 drawer layout 跟 side drawer 的 layout 各別加上android:fitsSystemWindows="true"?屬性;

<android.support.v4.widget.DrawerLayout ……android:fitsSystemWindows="true"……><!-- Content -->……<!-- Sid Drawer --><LinearLayout……android:fitsSystemWindows="true"…… ></LinearLayout></android.support.v4.widget.DrawerLayout>

  

  B. 在?v21/styles.xml中給android:statusBarColor屬性添加一個(gè)帶透明度的顏色值。

  <style name="AppTheme" parent="AppTheme.Base"><!-- All customizations that are NOT specific to a particular API-level can go here. --><item name="android:windowDrawsSystemBarBackgrounds">true</item><!-- Status bar color --><item name="android:statusBarColor">#88D81B60</item><!-- Navigation bar color --><item name="android:navigationBarColor">#00000000</item></style>

  

  

  3.如果想讓DrawerLayout的區(qū)域只在toolbar下方,就要在xml中把toolbar放到DrawerLayout之外,效果圖就不放了,代碼如下 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><android.support.v7.widget.Toolbarandroid:id="@+id/toolbar"... /><android.support.v4.widget.DrawerLayoutandroid:id="@+id/drawer"android:layout_height="match_parent"android:layout_width="match_parent"android:layout_below="@+id/toolbar"><!-- Content --><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="match_parent">...</RelativeLayout><!-- Side Drawer --><LinearLayoutandroid:id="@+id/drawer_view"android:layout_width="@dimen/navdrawer_width"android:layout_height="match_parent"android:layout_gravity="start"android:background="#88FFFFFF"android:orientation="vertical"></LinearLayout></android.support.v4.widget.DrawerLayout></RelativeLayout>

?

  

?

  

?

  

  

轉(zhuǎn)載于:https://www.cnblogs.com/Syun0929/p/4293085.html

總結(jié)

以上是生活随笔為你收集整理的Android - 基于Toolbar的Navigation Drawer(Material Design)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。