MaterialDesign

谷歌提出的 Material Design,Design Support庫,對于一些常用的效果和控件進行封裝。使用Material Design 就要隱藏掉ActionBar,修改軟件的主題顯示樣式,就在style.xml文件里面,替換掉下面這句,這句parent和面跟的就是隱藏ActionBar的主題

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

ToolBar

<android.support.v7.widget.Toolbar 
android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize"http://和原有Bar一樣高 
android:background="?attr/colorPrimary" android:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"http://指定ToolBar主題 app:layout_scrollFlags="scroll|enterAlways|snap" />
<!--Toobar在APPBarlayout中添加這個屬性ToolBar會跟著主題內容上滑隱藏,下劃出現-->

在ToolBar上添加action按鈕,在res目錄,新建Directory文件夾(menu),創(chuàng)建一個yoolbar.xml文件,showAsAction屬性是設置按鈕的顯示,always永遠顯示在Toolbar 中,屏幕空間不夠則不顯示,ifRoom表示屏幕有足夠空間句顯示,否則就顯示在菜單中,nerve表示永遠顯示在菜單中,
注:ToolBar中的action只會顯示圖標。而action按鈕只會顯示文字

<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="@mipmap/ic_backup"
    android:title="Backup"
    app:showAsAction="always"/>//總是顯示
    <item
        android:id="@+id/delete"
        android:icon="@mipmap/ic_delete"
        android:title="Delete"
        app:showAsAction="ifRoom"/>//屏幕充足顯示
    <item
        android:id="@+id/settings"
        android:icon="@mipmap/ic_delete"
        android:title="Settings"
        app:showAsAction="never"/>//從不顯示
    <item
        android:id="@+id/startactivty"
        android:icon="@mipmap/ic_add"
        android:title="StartActivity"
        app:showAsAction="always"/>
</menu>

在主函數中設置并且重寫onCreateOptionsMenu()方法,添加空間到ToolBar

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
setSupportActionBar(toolbar);
 @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.toolbar, menu); 
return true;
 }

DrawerLayout是一個布局,在布局里面只允許放兩個直接子控件,第一個是主屏幕顯示的內容,第二個是滑動菜單中顯示的內容。,第二個子控件加黑需要注意,必須添加,該屬性是指,在手機哪一側劃出菜單,star根據系統(tǒng)語言進行判斷,left,由左向右劃出,right相反

<?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" 
xmlns:tools="http://schemas.android.ca.sd.zsl.toolbartest" 
android:id="@+id/drawer_layout" 
android:layout_width="match_parent" 
android:layout_height="match_parent"
 tools:context="text.materialdesign.MainActivity"> 
<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:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />
</FrameLayout> 
<TextView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"
    android:layout_gravity="start"http://   
   android:text="這是側滑菜單" />
</android.support.v4.widget.DrawerLayout>
//設置按鈕彈出菜單
 mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);//先獲取布局實例, 
ActionBar actionBar = getSupportActionBar();然后獲取ActionBar實例,
 if (actionBar != null) { 
actionBar.setDisplayHomeAsUpEnabled(true);//讓按鈕顯示出來 
actionBar.setHomeAsUpIndicator(R.drawable.ic_menu);//設置圖片 }
home按鈕的點擊事件,重寫onOptionsItemSelected方法。
 @Override public boolean onOptionsItemSelected(MenuItem item)
 { switch (item.getItemId()) 
在ToolBar最左側的圖標就叫做HomeAsUp按鈕,它的ID永遠是android.R.id.home
 case android.R.id.home:STAR:
  mDrawerLayout.openDrawer(GravityCompat.START);//打開視圖到x軸的開始位置,不改變大小,END:打開視圖到x軸的結束位置,不改變大小 
 break;
default: break;
 } 
return true; 
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,029評論 25 709
  • 和朋友散步,朋友很氣憤的控訴自己的老公,說他一點都不會說話。事情起因還要從前幾天,女兒參加中招考試說起,女兒要去看...
    健的XUYU閱讀 391評論 1 2
  • 2017.11.24 星期五 珠海陰 降溫 只要堅持每點都進步一點點,日積月累也會有大進步。今明兩天...
    wu溧蕙閱讀 256評論 0 1
  • 兒女陪伴探爹娘,爹娘歡暢談孩時。 孩時趣事親情系,情系血脈永相連。 相連孝心敬雙親,雙親撫育慈愛深。 愛深永駐報春...
    快樂靈芝閱讀 362評論 17 20

友情鏈接更多精彩內容