ToolBar的使用详解

    xiaoxiao2021-03-25  96

    转自:http://blog.csdn.net/qq284565035/article/details/47086439

    Google在2015的IO大会上发布了系列的Material Design风格的控件。

        其中ToolBar是替代ActionBar的控件。

        由于ActionBar在各个安卓版本和定制Rom中的效果表现不一,导致严重的碎片化问题

        ToolBar应运而生。

    效果图

        显示效果跟ActionBar并没有区别。

        优点:自定义视图的操作更加简单,状态栏的颜色可以调(Android 4.4以上)。

        接下来讲述在Android Studio中配置Toolbar的几个步骤。

    配置Gradle

    [java]  view plain  copy  print ? compile 'com.android.support:appcompat-v7:22.0.0'  

    在AndroidManifest.xml设置Activity的主题

    [java]  view plain  copy  print ? android:theme="@style/AppTheme"  

    重定义主题

    Android 4.4及以上

    在values文件夹中新建values-v19.xml,内容如下 [html]  view plain  copy  print ? <resources>          <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">           <item name="windowActionBar">false</item>           <item name="android:windowNoTitle">true</item>           <!--Toolbar颜色-->           <item name="colorPrimary">@android:color/holo_blue_bright</item>           <!-- 状态栏颜色 -->           <item name="colorPrimaryDark">@android:color/holo_blue_bright</item>           <item name="android:windowTranslucentNavigation">true</item>           <item name="android:windowTranslucentStatus">true</item>       </style>         </resources>  

    Android 4.4以下

    [java]  view plain  copy  print ? <resources>          <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">           <item name="windowActionBar">false</item>           <item name="android:windowNoTitle">true</item>           <!--Toolbar颜色-->           <item name="colorPrimary">@color/Indigo_colorPrimary</item>       </style>         </resources>   在values文件夹中新建colors.xml文件 [java]  view plain  copy  print ? <?xml version="1.0" encoding="utf-8"?>   <resources>       <color name="Indigo_colorPrimaryDark">#303f9f</color>       <color name="Indigo_colorPrimary">#3f51b5</color>       <color name="Indigo_nav_color">#4675FF</color>   </resources>  

    注意

    均取消ActionBar,都继承了NoActionBar主题;Android 4.4及以上版本可对状态栏颜色进行改变,需要在代码中进行设置。

    创建toolbar的布局文件widget_layout.xml

    [java]  view plain  copy  print ? <?xml version="1.0" encoding="utf-8"?>   <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"       android:id="@+id/toolbar"       android:layout_height="wrap_content"       android:layout_width="match_parent"       android:background="?attr/colorPrimary"       android:minHeight="?android:attr/actionBarSize">      </android.support.v7.widget.Toolbar>  

    说明

    设置toolbar的背景颜色 android:background="?attr/colorPrimary" 设置toolbar的最小高度 android:minHeight="?android:attr/actionBarSize"

    在Activity中进行引用

    [java]  view plain  copy  print ? <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"       xmlns:tools="http://schemas.android.com/tools"       android:layout_width="fill_parent"       android:layout_height="fill_parent"       android:fitsSystemWindows="true"       tools:context=".MainActivity">          <include           layout="@layout/widget_toolbar"           android:id="@+id/toolbar" />      </RelativeLayout>   说明 防止ActionBar会和状态栏混在一起 [java]  view plain  copy  print ? android:fitsSystemWindows="true"  

    代码实现

    [java]  view plain  copy  print ? private Toolbar mToolbar;      private WebFragment mWebFragment;         private long mBeforeTime;         @Override      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.activity_main);             if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {              SystemBarTintManager tintManager = new SystemBarTintManager(this);              mToolbar = (Toolbar) findViewById(R.id.toolbar);              tintManager.setStatusBarTintEnabled(true);              setSupportActionBar(mToolbar);              tintManager.setStatusBarTintResource(android.R.color.holo_blue_bright);          }          getSupportActionBar().setHomeButtonEnabled(true); //设置返回键可用          getSupportActionBar().setDisplayHomeAsUpEnabled(true);      }   SystemBarTintManager可以在点击打开链接下载,就一个简单的Java文件。
    转载请注明原文地址: https://ju.6miu.com/read-32880.html

    最新回复(0)