在学习转场动画之前,我想要用Toolbar
<android.support.v7.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="?actionBarSize">
</android.support.v7.widget.Toolbar>
Toolbar,已经可以可以兼容到低版本,在查Toolbar 使用过程中经常可以看到,除了在工程的values/styles.xml,来设置主题:
<!-- Base application theme. -->
<style name="AppTheme" parent="AppTheme.Base">
<!--状态栏的颜色-->
<item name="colorPrimary">#4285F4</item>
<!-- colorPrimary 状态栏的颜色 -->
<item name="colorPrimaryDark">#000000</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
</style>
还会建议新建一个values-v21/styles.xml,一看就是5.0之上用的,但是如果不新加一个values-v21一样运行没有问题,就算新建values-v21/styles.xml
<style name="AppTheme" parent="AppTheme.Base">
<!--状态栏的颜色-->
<item name="colorPrimary">#4285F4</item>
<!-- colorPrimary 状态栏的颜色 -->
<item name="colorPrimaryDark">#607496</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
在应用在5.0之上系统运行的时候会优先运行values-v21/styles.xml,主题颜色,那我是不是可以得出一个结论不用values-v21/styles.xml,毕竟管理起来不方便。先这样结论,以后发现了再来改。
在网上查到一些资料,toolbar 初始化需要加入
//设置导航图标要在setSupportActionBar方法之后
setSupportActionBar(toolbar);
只有是MainActivity 继承AppCompatActivity ,才需要这样初始化,继承普通的,比如FragmentActivity,之类的不需要这样做,况且也没有setSupportActionBar()这个方法
Toolbar 使用
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:background="@color/toolbar_colorPrimary"
app:title="Toolbar"
app:titleTextColor="@color/toolbar_textColor"
app:navigationIcon="@android:drawable/btn_dialog"
app:subtitleTextColor="@color/toolbar_textColor"
app:subtitle="子标题"
android:layout_height="?actionBarSize">
app:title="Toolbar"//标题
app:titleTextColor="@color/toolbar_textColor"//标题颜色设置
app:navigationIcon="@android:drawable/btn_dialog"//返回按钮设置
app:subtitleTextColor="@color/toolbar_textColor"//子标题设置颜色
app:subtitle="子标题"//子标题
代码设置logo
toolbar.setLogo(R.mipmap.ic_launcher);
返回按钮的点击事件:
Toolbar toolbar= (Toolbar) findViewById(R.id.toolbar);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
activity.finish();
}
});
自定义Toolbar
Toolbar下面可以嵌套布局,直接将自己定义好的布局放到Toolbar下面即可
<android.support.v7.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
......
</RelativeLayout>
</android.support.v7.widget.Toolbar>
这个图在设置主题对应不同颜色,很有意义
效果:
我的想法:
在这边文章中,我只是简单的学习了一个Toolbar的使用和了解,在实际开发过程中,APP的设计标准都是以Ios 设计标准来的,虽然5.0后谷歌开始统一了标准,有了一套自己的模板开发标准,但是无疑来了晚了一些,Toolbar标准的谷歌设计模板结构,在实际开发中很难用到,所以我们如果要用Toolbar,来开发,估计需要自定义了。
参考大神:
http://blog.csdn.net/hanj456/article/details/53579608
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1118/2006.html
http://www.jianshu.com/p/e9130d31ee1f