1.首先在 build.gradle 引入support v7包
2.找到 Manifest 文件的 Application 标签下 Theme 属性
3.自定义 Theme 属性,因为 Activity 默认是有 ActionBar 的,所以需要先将默认的 ActionBar 去掉( parent="Theme.AppCompat.Light.NoActionBar" ),并根据项目需求选择主题的每个特定的属性
附录一张常用属性图,上面的每个属性就很好理解了。
1.先在需要添加 Toolbar 的 xml 文件中,加入 Toolbar 控件
解释一下 Toolbar 里面的属性,这里面的属性大多见名知意,很好理解。
我们发现 Toolbar 里面有三个属性是以 app 作为前缀,因为 Toolbar 在 5.0 系统才出现,以 app 为前缀名的属性是为了兼容 5.0 以下的系统 。
咱们一个个分析,先讲下这个属性
这个根据项目需求,我们自定义的 Toolbar 属性。关键点:因为我们 App 的主题是浅色的主题 "Theme.AppCompat.Light.NoActionBar" ,所以 Toolbar 中,我们继承了 parent="ThemeOverlay.AppCompat.Dark.ActionBar" , 如果 Toolbar 不用深色的主题,标题栏的字体之类看不清楚。
见名知意,这是 PopWindow 的主题,由于我们 ActionBar 设置的是深色的,默认情况下, PopWindow 和 ActionBar 的主题是统一的,但 PopWindow 的深色主题和整个 App 的整体颜色风格太不搭,所以我们需要将主题改成和 App 风格一致。
以上属性都是根据项目需求设定的,可加可不加, Toolbar 的可定制性很强~
这样我们就做到了,隐藏 ActionBar,使用 Toolbar 了。 注意:标题栏是默认在左上角的,并没有居中
1.先自定义标题栏,让标题居中
2.在 Toolbar 上添加几个按钮,先在 res 目录下新建一个文件夹: Menu ,创建一个 toolbar_menu.xml 文件
在MainActivity 重写 onCreateOptionsMenu 、onOptionsItemSelected 方法
Toolbar是Android 5.0中引入的一个新控件。好比是ActionBar升级版,但是相比ActionBar,Toolbar变得更加自由,可以放到任何位置。
由于我们平常开发app要兼容5.0以下的手机,所以使用Toolbar必须引用appcompat-v7兼容包,Android studio新建的工程默认是引用了appcompat-v7。
使用Toolbar替代ActionBar,使用的主题必须是没有ActionBar的,否则会造成冲突。因此修改style.xml中主题样式,继承Theme.AppCompat.NoActionBar
这种情况一般发生在你想利用ActionBar现有的一些功能(比如能够显示菜单中的 *** 作项,响应菜单点击事件,使用ActionBarDrawerToggle等),但是又想获得比actionbar更多的控制权限。
那么当前Activity需要继承AppCompatActivity,调用setSupportActionBar方法传入Toolbar的实例对象。
这种情况当前Activity可以不继承AppCompatActivity。
以上步骤完成后,Toolbar就添加到了页面中。
Toolbar在ActionBar原有的设计基础上又将标题栏分为了多个区域,如下从Google找到的一张示例图所示:
大抵来说,配置常用的几个元素就如图中所示:
设置导航按钮,比如作为返回按钮。
在Toolbar当作ActionBar来使用的情况下:
注意setNavigationIcon需要放在 setSupportActionBar之后才会生效。
可以使用ActionBar原有方法来添加一个系统的返回按钮。
可以通过setNavigationOnClickListener设置其点击事件。
设置图标(图中写错了,应该是setLogo)
设置主标题。
在Toolbar当作ActionBar来使用的情况下:
setDisplayShowTitleEnabled需要设置为false,setTitle才能有效。
设置副标题
设置菜单的点击事件,如果Toolbar当作ActionBar来使用的话,还可以直接在onOptionsItemSelected(MenuItem item)中设置。
关于Toolbar的初步使用就这么多,在Toolbar当作ActionBar使用的情况下,能用ActionBar原有方法实现的功能尽量用其方法实现,不能实现的再考虑使用Toolbar的方法,举个例子,像菜单构建设置监听什么的,直接使用Activity提供的方法就好了。
Java Swing本身提供了现成的按钮控件JButton创建一个新的按钮:JButton about = new JButton;
这个按钮该放到菜单区:toolBar.add(about)
要为按钮添加事件响应,需要使用about.addActionListener(this)来告诉程序监听按钮按下时的事件,ActionListener是一个程序接口。
public class KyodaiUI extends JFrame implements ActionListener {...}实现ActionListener接口是为了告诉程序我要进行事件处理了。
最后我们得添加响应事件的代码:
public void actionPerformed(ActionEvent e) {
if (e.getSource() == about) {
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)