Android Toolbar学習

5903 ワード

参考ブログアドレス:元ブログアドレス
1.概要:
Android3.0 AndroidはActionBarというコントロールを押したが、2013年になるとGoogleはいわゆるAndroid Styleを大いに推進し始め、過去に混乱していたandroidインタフェースの設計を徐々に改善したいと考えている.Android端末の利用者ができるだけandroid携帯電話で一致した体験を持つことを望んでいる.ActionBarが過去に最も多く使用した2つのキットはActionBarSharelockである.そして公式のsupport library v 7の中のAppCompat.
Toolbarを紹介する以上、ActionBarはandroid appの開発と設計の弾力性を制限していると公式にある程度考えられていることを意味し、material designでも名前の定義をしています:App bar、それではどのようにandroid appの中でtoolbarというコントロールで基本的なapp barを作ります
2.基礎セット
2.1スタイル
スタイルを調整する場所は2つあります.
  • はres/values/stylesにあります.xml内
  • 二はres/values-21/stylesにある.xml内
  • その後の便宜上values/styles.xmlにAppThemeという名前を追加します.ベースのスタイル
    
    

    ここでAndroid API 22と以上を試して「android:」を消さないとエラーになります
    AppCompat does not support the current theme features: { windowActionBar: false, windowActionBarOverlay: false, android:windowIsFloating: false, windowActionModeOverlay: false, windowNoTitle: false }```
    
            Toolbar,         ActionBar    ,      AppTheme parent       AppTheme.Base
    ### 2.2.  
     activity_main    
    

    android:id="@+id/toolbar"android:background="@android:color/white"android:layout_height="wrap_content"android:layout_width="match_parent">
    
    ###2.3Java  
     Activity    ToolBar  :
    

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar);
    
    ##3.     
    - colorPrimaryDark(     ):   (style)    (Theme)   
    - AppBar  
            ,   android app     ActionBar,      (style)    (themes)    colorPrimary    ;
         Toolbar  ,     (layout)    Toolbar background  .
    - navigationBarColor(     ):   API21+   Android5.0       ,        res/values-21/styles.xml  
    
    -      :windowBackground
                  ,  style (res/values/styles.xml)
    

    <br> <item name="windowActionBar">false</item><br> <item name="windowNoTitle">true</item><br> <item name="colorPrimary">@color/colorPrimary</item><br> <item name="colorPrimaryDark">@color/colorPrimaryDark</item><br> <item name="colorAccent">@color/colorAccent</item><br> <item name="android:windowBackground">@color/windowBackground</item>
    
      v21(res/values-v21/styles.xml) 
    

    <br> <br> <item name="android:navigationBarColor">@color/colorAccent</item><br> ```
    三つ目は本編の主役Toolbarのbackground設定
    
    
    

    toolbarはactivityに設定されていますmain.xmlでは、その設定値background属性を
    android:background="?attr/colorPrimary" 
    

    これでActionBarの色に沿って設定できます
    4コントロール(Component)
    一般的に使用されるいくつかの要素をプリセットします.
  • setNavigationIcon:up Buttonを設定するアイコン
  • setLogo:APPのアイコン
  • を設定する
  • settTitle:メインタイトル
  • setSubtitle:サブタイトル
  • setOnMenuItemClickListener:メニューの各ボタンを設定する動作
  • コードを書くメニュー以外の部分
    Toolbar toolbar =(Toolbar)findViewById(R.id.toolbar);
    //AppLogo
    toolbar.setLogo(R.drawable.ic_launcher);
    //Title
    toolbar.setTitle(R.string.app_name);
    //SubTitle
    toolbar.setSubtitle("subtitle");
    setSupportActionBar(toolbar);
    //navigationIcon   setSupportActionBar       
    //     backButton
    toolbar.setNavigationIcon(R.drawable.ab_android);
    

    メニュー部分はres/menu/menu_main.xmlを定義する
        
        
        
    
    
    

    Activityに戻ってOnMenuItemClickListenerを書きます
    public boolean onMenuItemClick(MenuItem item) {
        String message = ""
        switch (item.getItemId()){
            case R.id.action_edit:
                message += "";
                break;
            case R.id.action_share:
                message += "";
                break;
            case R.id.action_setting:
                message += "";
                break;
        }
        if (!message.equals(""))
        Toast.makeText(this,message,Toast.LENGTH_SHORT).show();
        return true;
    }
    

    これはActivityにOnMenuItemClickListenerを実現させ、このリスナーをToolbar toolbar.setOnMenuItemClickListener(this);に設定し、setNavigationIconと同様にsetSupportActionBarの後に設定する必要がある.
    簡単な説明をします.
  • colorPrimaryDarkステータスバー背景色.スタイルのプロパティで設定します.
  • textColorPrimary App barのタイトルと、より多くのメニューの文字色.スタイルのプロパティで設定します.
  • App barの背景色Actionbarの背景色はstyleのcolorPrimaryに設定されている.Toolbarの背景色layoutファイルでbackgroundプロパティを設定します.
  • colorAccent各制御要素(check box、switch、radoiなど)がチェックされているか、選択されている色が選択されている.スタイルのプロパティで設定します.
  • colorControlNormal各制御素子のプリセットカラー.スタイルのプロパティに
  • を設定します.
  • windowBackground Appの背景色.スタイルのプロパティに
  • を設定します.
  • navigationBarColorナビゲーションバーの背景色ですが、API Level 21(Android 5)以上のバージョンでのみstyleのプロパティに**を設定します.最後に注意したいのは、materialトピックを使用する場合はtargetSdkVarsion=21を設定する必要があります.そうしないと、インタフェースがぼやけている**
  • に見えます.