当前位置:首页 » 安卓系统 » androidtoolbarmenu

androidtoolbarmenu

发布时间: 2023-01-26 12:08:48

A. Toolbar使用

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提供的方法就好了。

B. android ToolBar中menu中的字体太小,怎么办

android – How to set a font for the Options menu? – Stack Overflow

去看看自己此处menu对应的xml,看看是否有对应的配置选项。

直接添加:

android:textSize="16sp"

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<item
android:id="@+id/menu_discard"
android:icon="@drawable/error_white"
android:orderInCategory="1"
android:showAsAction="ifRoom|withText"
android:title="@string/discard"
android:textSize="16sp"/>
<item
android:id="@+id/menu_send"
android:icon="@drawable/forward_white"
android:orderInCategory="2"
android:showAsAction="ifRoom|withText"
android:title="@string/send"
android:textSize="16sp"/>

</menu>

C. 如何添加toolbar的导航按钮 android

在res目录下的menu目录下,新建自己的菜单文件,如下
[html] view plain
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.carlos.myapplication.MainActivity">
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:title="@string/action_settings"
app:showAsAction="never" />
<item
android:id="@+id/history"
android:title="历史"
app:showAsAction="never"/>

D. android 怎么获取toolbar上的menu view

放两个panel 在窗体上,都设置属性Dock 为 top , menu 放在上面panel里,toolbar放在下面的panel Android Menu的文字有两种设置方式: 在 menu.xml中设置。 在java代码onCreateOptionsMenu中设置。 以下为示例代码: 在menu.xml中指定title即可...

E. Android 中通用的Toolbar和Error,Empty,Loading UI 处理

在Android 开发中Activity几乎都有Toolbar(menu也在里面)和以及Http 请求的时候出现的Error,Empty,Loading等UI 需要处理,怎么能快速简单高效处理呢?

如下面所示,默认都是需要Toolbar 的,如果不需要就设置为不可见就好了;
而不同的Activity 中的内容实际是放在(FrameLayout)fl_content 中的。

怎么处理不同的Activity 中的内容实际是放在(FrameLayout)fl_content 中的呢?

这种问题几乎每个页面都会遇到,难道每个页面都是使用FrameLayout 叠加两层内容来处理?😄,推荐一个项目LoadSir: https://github.com/KingJA/LoadSir

在BaseActivity 中已在 LoadSir.getDefault().register(content 了

使用的时候只要大概这样就好了:

F. Android ToolBar上的menu图标怎么在点击之后更换

对于点击就能改变状态的 一般都是在drawable中自定义一个xml文件使用

<selector>
<item android:state_pressed="false">
//...
</item>
<item android:state_pressed="true>
//...
</item>
</selector>

G. android 怎样获取toolbar上的菜单控件

toolbar一般是不可能遮住其它控件的,toolbar是工具栏。通常在操作系统,Office 2010或其它软件的界面中都有一个工具栏。 在PS中,界面左侧有钢笔工具,索引工具,图章工具等等的一个框也是工具栏,也叫工具箱。 在计算机显示器的图形用户界面上,工具栏放置了界面按钮、图标、菜单或其它输入/输出元素。 工具栏是显示位图式按钮行的控制条,位图式按钮用来执行命令。按工具栏按钮相当于选择菜单项;如果某个菜单项具有和工具栏按钮相同的ID,那么使用工具栏按钮将会调用映射到该菜单项的同一个处理程序。可以配置按钮,使其在外观和行为上表现为普通按钮、单选按钮或复选框。工具栏通常与框架窗口的顶部对齐,但 MFC工具栏可“停靠”在其父窗口的任何一边或在它自己的袖珍框架窗口中浮动。工具栏也可“浮动”,用户可更改其大小并用鼠标拖动它。当用户将鼠标移动到工具栏按钮上时,工具栏还可显示工具提示。工具提示是个弹出的小窗口,简要描述按钮的作用。 有些应用程序,如图形编辑软件,允许工具栏分离并在窗口或其它工具栏之间移动。工具栏在办公软件套装上很常见,如OpenOffice.org、图形编辑软件以及网页浏览器如Inkscape和Mozilla Firefox。

H. Android:关于Toolbar的样式

早就已经抛弃Android中的ActionBar已经很久了,现在在v7中的Toolbar已经爬坑很久了。对于它的样式,也是用到的时候才会去查一下,但是有时候网络查的时候也是很麻烦,需要很久,索性就把常用到的样式给记录下来,以备不时之需,到时可直接复制粘贴大法到自己的项目中去了。废话不多说了,GETING START!!!

设置toolbar的主题: android:theme="@style/......."

上边两种样式是黑白标题的两种样式默认的显示情况。

有时候标题栏的颜色并不符合我们的要求,我们就修改下标题栏的颜色
在白色样式上进行修改,标题文字,navigation icon,overflow button,overflow menu的文字

<item name="subtitleTextColor">#09bb07</item> 这行主要是修改副标题的字体颜色
可以看到,除了overflow menu 的背景颜色没有改变 其他的字体颜色都会改变

添加OverflowMenu样式为 app:popupTheme="@style/......."

Toolbar两种不同的主题,对应的OverflowMenu样式也不同。白色的对应是黑色背景、白色字体;黑色对应的是白色背景,黑色字体。

注意:添加上OverflowMenu的样式后,之前修改标题栏字体颜色对菜单的字体颜色就不起作用了,需要重新在OverflowMenu的样式上定义字体颜色了

I. Fragment中添加menu

Fragment是Android里面中一个非常灵巧的设计,它可以看做ui模块,由活动托管。熟练的使用它们能优雅的实现很复杂的界面,而且用它们编写UI界面,相对于用一个个Activity所消耗内存少得多,而且切换很流畅,可以参考知乎客户端。

但是,Fragment使用过程中会出现一些小问题,这里讲如何在Fragment中添加menu。我们都知道在活动中添加menu只用编写好menu,在onCreateOptionsMenu中加载,并在onOptionsItemSelected中处理点击事件就可以了,按照这个流程先试下

首先编写menu.xml

这里只添加一个设置的menu item

然后要加载menu需要toolbar或actionbar,这里分两种情况:

然后再调用onCreateOptionsMenu加载到toolbar上

运行一下,你会发现两种情况下menu都没加载出来。原来要在fragment中加载menu还需在其onCreate中加一句 setHasOptionsMenu(true),用于让活动知道有menu要加载

现在menu加载出来了

然后重写onOptionsItemSelected处理点击事件

现在就大功告成了吗,然而运行后会发现无论怎么点击onOptionsItemSelected都没被调用。可以再android training中找到原因
http://developer.android.com/guide/topics/ui/actionbar.html

也就是说在虽然在fragment中重写onOptionsItemSelected,但系统会在activity中先调用onOptionsItemSelected,而活动中默认都消耗了点击事件,fragment中因此无法处理点击。所以要先在托管碎片的活动中讲frament中处理的menu item返回false,让点击事件能穿到fragment的onOptionsItemSelected中

总结下
要在fragment添加menu需要以下步骤:

J. Android Toolbar的详细使用步骤

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 方法

热点内容
龙之谷交易所脚本 发布:2024-05-21 12:55:03 浏览:743
心理游戏编程 发布:2024-05-21 12:55:02 浏览:317
安卓哪个平板有高刷新率 发布:2024-05-21 12:47:06 浏览:126
sQliteAndroid事务 发布:2024-05-21 12:41:52 浏览:852
孕期计算法 发布:2024-05-21 12:29:58 浏览:418
android虚拟事件 发布:2024-05-21 12:29:11 浏览:115
javaeffective 发布:2024-05-21 11:39:58 浏览:765
算法高效 发布:2024-05-21 11:16:06 浏览:139
十年前电脑做服务器 发布:2024-05-21 11:14:35 浏览:971
解压之音 发布:2024-05-21 11:07:37 浏览:866