Toolbar的使用

androidx使用Toolbar androidx使用Toolbar 将默认标题栏改为隐藏状态 <resources> <!-- Base application theme. --><style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --><item name="colorPrima... 阅读详情

Toolbar的使用,及一些需要的小知识点在使用Google或Baidu可以搜索出来。所以,仅做下简单记录。Toolbar是ActionBar的替代使用。使用Toolbar可以更加的灵活,更容易编写顶部的布局。以前都是使用
自定义的布局作为Actionbar,Toolbar也是如此。如果顶部过于复杂,则也还是要回到自定义布局上。
Toolbar集成自ViewGroup,并做了一些封装。下面看如何使用:首先是要设置窗口为noActionBar, noTitle;我们在全局的style.xml中设置。

        <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>

        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>
然后在xml布局上使用:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    tools:context="cn.tofly.mis.waterusermanager.testmodule.TestActivity">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
        android:theme="@style/ToolbarStyle">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="我是标题" />

    </android.support.v7.widget.Toolbar>

    <FrameLayout
        android:id="@+id/fragment_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

这是个简单的布局。这里是使title居中的布局。默认的Toolbar布局并不是这样。android:background属性是设置底色;
app:popupTheme属性是使点击over flow弹出的框的背景和字体为白底黑字;android:theme是设置了图标的颜色。style里的写法是这样的:

    <style name="ToolbarStyle" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
        <item name="colorControlNormal">@android:color/white</item>
    </style>

最后,我们要做Activity中做一些设置,就几行代码:

      Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        toolbar.setTitle("xxxsss");

        setSupportActionBar(toolbar);

        ActionBar ab = getSupportActionBar();
        ab.setDisplayHomeAsUpEnabled(true);
        ab.setDisplayShowHomeEnabled(true);

要使用默认的导航,这样设置:

    private void setUpToolbar() {
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        toolbar.setTitle(R.string.label_arrearsinquiry);

        setSupportActionBar(toolbar);

        ActionBar ab = getSupportActionBar();

        if (ab != null) {
            ab.setDisplayHomeAsUpEnabled(true);
        }

    }

设置logo,

     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        toolbar.setTitle(R.string.main_label);

        setSupportActionBar(toolbar);

        ActionBar ab = getSupportActionBar();
        if (ab != null) {
            ab.setHomeAsUpIndicator(R.drawable.ic_launcher);
            ab.setDisplayHomeAsUpEnabled(true);
        }

监听当点击了导航返回时的回调事件,只需要覆盖重写onSupportNavigateUp方法:

    @Override
    public boolean onSupportNavigateUp() {
        onBackPressed();
        return true;
    }

设置menu菜单,和以前的用法一样,监听也是。如果是在fragment中使用时,则要加上这样一句:

    setHasOptionsMenu(true);

同理在以下的两个函数中设置和监听:

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.menu_edit:
                LogUtils.toastShortMsg(mActivity, "edit");

                return true;
            case R.id.menu_setting45:
                LogUtils.toastShortMsg(mActivity, "setting45");

                return true;
            case android.R.id.home:
                LogUtils.toastShortMsg(mActivity, "home");

                return true;
            default:
        }

        return false;
    }


    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        inflater.inflate(R.menu.menu_test, menu);
    }

最后贴个menu_test.xml的代码:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".HomeActivity">
    <item xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/menu_edit"
        android:icon="@drawable/ic_launcher"
        android:title="编辑"
        android:orderInCategory="80"
        app:showAsAction="ifRoom" />

    <item xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/menu_setting3"
        android:icon="@drawable/ic_launcher"
        android:title="设置xxxxxx"
        android:orderInCategory="90"
        app:showAsAction="always" />

    <item xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/menu_setting4"
        android:icon="@drawable/ic_launcher"
        android:title="设置2222"
        android:orderInCategory="90"
        app:showAsAction="never" />


    <item xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/menu_setting45"
        android:icon="@drawable/ic_launcher"
        android:title="设置442"
        android:orderInCategory="90"
        app:showAsAction="never" />


</menu>

菜单效果图示

就这样吧,参考资料:
1.http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1118/2006.html
2.http://blog.youkuaiyun.com/mchenys/article/details/51533689
3.http://www.codeceo.com/article/android-toolbar-develop.html
4.http://blog.youkuaiyun.com/Picasso_L/article/details/50159095

Android框架之路——ToolBar的使用 参考博客教程: Android之toolbar的使用 Toolbar使用详解 Demo下载:     下载链接效果图: mainActivity secondActivity 使用流程: 修改App的主题样式,styles.xml文件更改如下:<!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat 阅读详情

相关推荐

Toolbar(去除默认的actionBar主题,使用Toolbar)

前面说了,Android默认每个界面都有ActionBar,而我们项目使用Toolbar,所以要给Activity配置去除ActionBar的主题,前面我们已经配置了,如果大家还没配置要配置了,才能使用Toolbar,不然会因为冲突,而崩溃。 如果没有这个依赖,则需要添加 //material design依赖 //AppBarLayout在这里面 implementation 'com.google.android.material:material:1.0.0' /** * 通用

追梦人的博客 997

onBackPressed和onSupportNavigateUp后退的区别

onBackPressed和onSupportNavigateUp都可以使应用程序后退,很多时候的功能相同,但是在个别的场景下,还是有一定的区别   1.在使用toolbar的情况下,onBackPressed可以使系统自带的后退按钮,onSupportNavigateUp可以使用toolbar的后退按钮后退 override fun onSupportNavigateUp(): Bool...

mlsnatalie的博客 1万+

Baidu-Toolbar

Baidu-Toolbar Baidu-Toolbar Baidu-Toolbar

onSupportNavigateUp()未调用

在基于AS给的Navgation Drawer Activity模板写app时偶然出现一个bug: 设置点击事件的代码写在onSupportNavigateUp()下时,点击侧滑菜单上自定义的按钮不会跳转界面,点击事件未被执行 经测试发现和调出侧边菜单的方式有关: 进入程序,程序首先调用onCreate()等生命周期函数,程序进入onResume状态,再调用onCreateOptions()。 点击左上菜单图标调出菜单,会依次调用onOptionsItemSelected和onSupportNavig

ZJM的博客 1820

Linux 音频驱动(六) ALSA音频驱动之PCM Write数据传递过程

目录1. 前言2. PCM Data Flow3. 总结 1. 前言 本文,我们将以回放(Playback,播放音频)为例,讲解PCM Data是如何从用户空间到内核空间,最后传递到Codec。 在Linux 音频驱动(一) ASoC音频框架简介中,我们给出了回放(Playback)PCM数据流示意图: 对于Linux来说,由于分为 user space 和kernel space,而且两者之间不能随便互相访问。因此用户如果播放音频,则需要调用copy_from_user()将用户数据从user spa

_Modest_的博客 1万+

Codex CLI 接入智谱 GLM-5.1 完整教程

Codex CLI 是 OpenAI 推出的命令行 AI 编程工具,支持自主读取文件、执行命令、编写代码等操作,是目前最火的终端 AI 编程工具之一。通过 CLIProxyAPI 代理,我们成功将 Codex CLI 与智谱 GLM-5.1 模型对接,核心在于解决 Responses API 与 Chat Completions API 的协议转换问题。✅成熟稳定:CLIProxyAPI 社区活跃(4.7k fork),持续维护✅完整兼容:支持流式/非流式、function calling✅低成本。

u011831527的博客 2573

踩坑!Android Jetpack组件间库之Navigation

都说三年是程序员的一个坎,能否晋升或者提高自己的核心竞争力,这几年就十分关键。技术发展的这么快,从哪些方面开始学习,才能达到高级工程师水平,最后进阶到Android架构师/技术专家?我总结了这 5大块;我搜集整理过这几年阿里,以及腾讯,字节跳动,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含知识脉络 + 分支细节。

2401_84098018的博客 1130

基于LSTM算法的股票预测详解

一、需求 给定几个已知的股市因素(开盘、收盘、最高、最低、成交量、成交额)及各因素对应的大量数据,训练一个该股票的涨跌趋势的预测模型。并在给定的测试数据的条件下求出接下来的涨跌趋势。即得到下图中的label值。-1代表跌、1代表涨。 二、分析 1、LSTM简单介绍 LSTM这个算法是专门训练有时间序列信息的数据的,即这些数据不仅按照时间递增的顺序排布,并且前后的数据都有着很强的联系。个人认为与马尔可夫的思想差不多,即后面的值由前面的值来决定。本次需求是要根据已知的股市数据来分析某个时间段的涨跌趋势,并预测

Zhang_713的博客 1万+

腾讯等大厂面试最喜欢问的Android-Jetpack架构组件-—-Navigation详解-[转](1)

* NavHostFragment是导航视图的展示容器。**name为固定写法,必须指明为defaultNavHost字段表示是否拦截返回按键操作。若为true,需要的Activity中重写onSupportNavigateUp方法。因为默认情况下返回键是不会回退fragment页面的。navGraph字段即为我们配置的navigation导航视图。

2401_84558590的博客 1237

1.安装EMQX服务器

阿里云;EMQX

hfh8130的博客 5311

虚拟化 之三 详解 ARM 平台 jailhouse 的移植适配、构建及使用(飞腾派)

本文将探索学习通过在飞腾官方提供的 Buildroot 构建系统移植适配 openEuler 内核以及 jailhouse 源码 Package 进而直接构建一个适用于飞腾派开发板的带有 jailhouse 的 openEuler 发行版。

技术干货 1004

Up navigation with fragments using AppCompat

public class MyActivity extends ActionBarActivity { @Override public boolean onSupportNavigateUp() { if(getSupportFragmentManager().getBackStackEntryCount() > 0 ) { getSupp

公众号shadow sock7 518

【PCIe硬件】PCIe引脚PRSNT与热插拔

热插拔的基本目的是要让PCIe设备按照规定的顺序、原则,从系统中移除或插入到系统中来,并能正常的工作,且不影响系统的正常运行。事实上,PCIe“热插拔”的关键目的就是为前面面所提到的系统RAS服务的,是提升系统RAS能力的非常重要的手段!注意,这里有两个相关概念,前面我们讲的热插拔,其实是广义的“热插拔”。这里的Hot-Plug,为了方便,我们叫做PCIe热插拔,也就是我们现在及后面将要讨论的内容。

smartvxworks的博客 2806

Android Toolbar的使用详解

修改主题 当我们新建一个工程时,我们发现默认是有导航栏的, 如图: 那是因为默认app主题自带了导航栏 我们发现,系统自带的是一个xxxActionBar,那么我们应该禁用掉 ActionBar 方法一 注意 要选择 xxxNoActionBar 也就是无导航栏的样式 以上主题任意选择一个即可。 方法二 你也可以在 res/style.xml 中配置 NoActionBar 主题样式 (全局可用) <?xml version="1.0" encoding="utf-8"?> <re

闲时不练功,忙时一场空 2万+

【Qt开发教程】网络代理QNetworkProxy类详解及实战应用

QNetworkProxy 提供了一种灵活而强大的方式来配置和管理网络代理,通过设置代理类型、主机、端口和认证信息,可以使应用程序的所有网络请求通过代理服务器进行。结合 QNetworkProxyFactory 可以实现动态代理选择和自动配置,提高应用的网络通信能力和安全性。在实际应用中,通过合理设置代理、处理代理认证和错误情况,可以确保应用程序在复杂的网络环境中稳定运行,为用户提供可靠的网络访问体验。

科技改变人类,技术成就未来 1542

Android-Zygote进程的诞生—从init到Zygote启动

Android Zygote进程启动流程解析 Android系统的Zygote进程是所有应用进程的父进程,由init进程创建。启动流程分为: 内核阶段:加载init进程(PID=1) init进程阶段: 挂载基础文件系统(tmpfs、proc等) 设置SELinux安全策略 解析init.rc配置文件 Zygote启动:init进程通过app_process启动Zygote,预加载系统资源 SystemServer:Zygote fork出系统服务进程 关键点: init是用户空间第一个进程......

保持专注,保持热爱 637

ToolBar使用总结

目录toolbarstyle配置toolbar布局NavigationIconNavigationIcon常用方法具体使用titleMenumenu的创建menu点击事件menu不同状态时操作menu菜单图标+标题同时显示fragment使用menu菜单style的配置style的基本配置app:theme & app:popupTheme修改toolbar的字体修改menu的字体颜色修改menu显示位置 toolbar style配置 <style name="toolbar"&gt

lxy1740的博客 1611

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Android ToolBar使用总结

Toolbar是在应用程序的Layout布局中使用的一个泛化的action bar,就是说它和action bar有相同的设计意图,但却设计的更加自由和可控。说自由是因为Toolbar可以放在View树中的任何地方,要知道传统的action bar是Activity的一部分,由framework层控制。现在把Toolbar从Activity中独立出来,不是使得它更加自由了吗?说更加可控其实也还是它

阳光玻璃杯 3733

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Toolbar的简单使用

Toolbar的简单使用 前言:由于之前项目都没怎么使用toobar,今天心血来潮就写了个demo熟悉下,免得以后用到还得花时候查资料,顺便做下笔记!go。。。 一、Toobar是5.0之后出来的,可以说出来之后就取代了ActionBar了(反正我身边的开发人员都不用ActionBar了),好处就不说了,用了之后好不好自己自然有所感觉,要注意的是要兼容5.0以下就使用V7包下

小江江的成长之路 3万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Toolbar的使用以及自定义Toolbar的方法

Toolbar简单操作

yanwenmuc的专栏 5084

Android的ToolBar简单使用

文章目录一、前言二、Activity、FragmentActivity与ToolsBar的关系三、ToolsBar的初步使用四、ToolBar的菜单配置五、返回时间监听六、自定义ToolBar 一、前言 在实际开发中,通常会有应用操作栏,如果整个应用有一个统一风格的应用状态栏的话,我们常常会自己对其封装一个公共的组件在各个地方进行引入。不过官方对其提供栏一个公共状态栏的组件,并且拥有其一些常用的属性。以前是ActionBar,现在叫做ToolBar。而且还可以和一些其它的组件进行联动。这些组件在不满足其使用

Mr_Tony的专栏 1万+

Toolbar简单使用

Toolbar作为标题栏,说一下最基本的使用方式: 首先,在xml中引入,代码如下: <androidx.appcompat.widget.Toolbar android:id="@+id/toolbar" style="@style/Toolbar" android:layout_width="match_parent" android:layout_height="?actionBarSize" android:gravit

lixinxiaos的博客 1368

Android Toolbar 使用总结

Toolbar 是在 Android5.0 推出的一款 MD 风格的导航控件,主要是为了替换 Actionbar 的。与 Actionbar 相比,Toolbar 非常灵活,我们可以自由地在 Toolbar 内添加子控件。 使用 Toolbar 由于 Toolbar 是在 Android5.0 才开始加上的,低版本要使用的话,需要引入 support-v7 兼容包,使用 andro...

Gink's Blog 1341

Android中Toolbar的使用

我们使用的开发工具是AS,先创建一个项目,名字为Toolbar。一步一步next,最后Finish。AS默认创建的新Activity都是继承AppCompatActivity,所以我们在此基础上来设置Toolbar。创建好的项目如下: public class MainActivity extends AppCompatActivity { @Override protec

Forest的博客 4907

ToolBar的使用

一、ToolBar简单使用 1、定义style,隐藏app的ActionBar,并在manifest中,指定application的主题为刚刚定义的style <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/colorPrimary</item> <item name

adasmy的专栏 5052
上一篇: Java对象序列化 Object Serialization
下一篇: Dagger2+MVP+RxJava+Retrofit从放弃到入门
xiongmaozhijin
博客等级 码龄15年 4粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值