我们做APP页面的时候往往需要在头部的位置加一个导航栏,显示一下页面的标题,返回按钮,或者右侧还有有一些别的按钮。当然了,还会出现比如标签,搜索等比较高级一点的内容。如果开发时间较长的同学应该知道Actionbar,但这个已经过时了,因为定制难,长得丑都是它存在的问题。后来我们习惯了自己写一个布局去替代它,使用include的方式引入,但是这样要么就是所有页面都要自己写一套,要么就是每种长得都不一样不好兼容。再后来我们学会了自定义控件写这个导航,这时就高级一些了,但很考量我们的技术功底。不过现在不用担心了,官方有了Toolbar,基本可以满足我们的导航栏需求了。下面我们就介绍一下Toolbar的一些基本用法。
1.Toolbar引入方法在styles.xml中定义一个不包含Actionbar的风格样式,代码如下:<style name="Apptheme" parent="theme.AppCompat.light.NoActionbar"/>
当然我们还可以使用如下代码隐藏Actionbar
<style name="Apptheme" parent="theme.AppCompat.light.DarkActionbar"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> <item name="windowNoTitle">true</item></style>
和新建项目自带的相比就是加了windowNoTitle这行。我一般喜欢用第二种。
不管用哪种,接下来我们需要把这个Apptheme主题配置给AndroIDManifest.xml的application节点下
androID:theme="@style/Apptheme">
接着我们要在布局中添加一个Toolbar控件。由于要用到Toolbar,所以外层布局要用线性布局,并设置为垂直方向,代码如下
<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:orIEntation="vertical"> <androIDx.appcompat.Widget.Toolbar androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:ID="@+ID/tl_head"/></linearLayout>
这里我使用的是androIDx,如果还没有升级到androIDx的同学,引入的是androID.support.v7.Widget.Toolbar,不过直接打Toolbar就能出来,只要看好是哪个就可以了。
最后我们的Activity要继承自AppCompatActivity,新建项目一般默认继承自AppCompatActivity,大家确定一下就好。接着我们初始化我们的Toolbar控件,这个不上代码了。然后调用setSupportActionbar进行设置。万整的Activity代码如下:
public class MainActivity extends AppCompatActivity { private Toolbar tl_head; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); tl_head = findVIEwByID(R.ID.tl_head); setSupportActionbar(tl_head); }}
这样我们的Toolbar就显示出来了 。
2.Toolbar常用属性此时大家如果照着上面的代码编写后运行,会发现虽然Toolbar成功显示出来了,但是除了一行文字什么都没有。那是因为我们什么都没有设置的缘故。Toolbar为我们提供了很多属性,常用的属性和方法如下:
XML中的属性 | Toolbar类的设置方法 | 说明 |
logo | setlogo | 设置工具栏图标 |
Title | setTitle | 设置标题文字 |
TitleTextcolor | setTiitleTextcolor | 设置标题的文字颜色 |
TitleTextAppearance | setTitleTextAppearance | 设置标题的文字风格。风格定义在styles.xml中 |
subTitle | setSubTitle | 设置副标题文字。副标题在标题下方。 |
subTitleTextcolor | setSubTitleTextcolor | 设置副标题的文字颜色 |
subTitleTextAppearance | setSubTitleTextAppearance | 设置副标题的文字风格 |
navigationIcon | setNavigationIcon | 设置左侧导航图标 |
无 | setNavigationOnClickListener | 设置导航图标的点击监听器 |
public class MainActivity extends AppCompatActivity { @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); // 从布局文件中获取名叫tl_head的工具栏 Toolbar tl_head = findVIEwByID(R.ID.tl_head); // 设置工具栏左边的导航图标 tl_head.setNavigationIcon(R.mipmap.ic_back); // 设置工具栏的标题文本 tl_head.setTitle("工具栏页面"); // 设置工具栏的标题文字颜色 tl_head.setTitleTextcolor(color.RED); // 设置工具栏的标题文字风格// tl_head.setTitleTextAppearance(this, R.style.Tabbutton); // 设置工具栏的标志图片 tl_head.setlogo(R.mipmap.ic_launcher); // 设置工具栏的副标题文本 tl_head.setSubTitle("Toolbar"); // 设置工具栏的副标题文字颜色 tl_head.setSubTitleTextcolor(color.YELLOW); // 设置工具栏的背景 tl_head.setBackgroundResource(R.color.blue_light); // 使用tl_head替换系统自带的Actionbar setSupportActionbar(tl_head); // 给tl_head设置导航图标的点击监听器 // setNavigationOnClickListener必须放到setSupportActionbar之后,不然不起作用 tl_head.setNavigationOnClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw vIEw) { finish(); // 结束当前页面 } }); }}
总结
以上是内存溢出为你收集整理的Android中导航栏之Toolbar的使用全部内容,希望文章能够帮你解决Android中导航栏之Toolbar的使用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)