qt toolbar 添加按钮右边怎么添加新的功能按钮

主题 : 请路过的高手指教下关于ToolBar上添加barbuttonitem的问题
级别: 新手上路
UID: 118872
可可豆: 183 CB
威望: 180 点
在线时间: 263(时)
发自: Web Page
来源于&&分类
请路过的高手指教下关于ToolBar上添加barbuttonitem的问题&&&
我用代码UIToolBar* mytoolbar视图,然后用UIBarButtonItem *button1 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemTrash                                                                                                                                                                                                                           target:self                                                                                                                                                                                                                              action:@selector(clickbutton:) ]之后把这个item放进NSArry *buttonarry的数组中,mytoolbar.items=buttonarry,最后把toolbar视图加入父视图中。编译成功,但是只能看见一条空的toolbar,但看不见我添加的buttonitem。不过,我点击buttonitem的区域的时候,我设定的action函数是会响应的,我用clickbutton在后台打印了一条LOG,不知道为什么?求各位指教下。PS:我后面又用IB去从LIBARY中拖控件来构成带系统buttonitem的toolbar的时候,是可以正常显示的。
级别: 圣骑士
可可豆: 4278 CB
威望: 4278 点
在线时间: 431(时)
发自: Web Page
[[UIBarButtonItem alloc] initWithCustomView:yourbtn]
级别: 新手上路
UID: 118872
可可豆: 183 CB
威望: 180 点
在线时间: 263(时)
发自: Web Page
回 1楼(liliangwor) 的帖子
我试过initWithTitle、initWithImage以及我上面说的initWithBarButtonSystemItem,都是可以响应相应的action函数,但就是 在toolbar上没有显示,你提的这个是用来定制特别的barbuttonitem的,应该差不多也会出现一样的情况我目前是想显示一些系统提供的buttonitem也不行,并不涉及定制的item。不过还是谢谢。
级别: 新手上路
UID: 118872
可可豆: 183 CB
威望: 180 点
在线时间: 263(时)
发自: Web Page
已经找到问题的原因,搞定了。
级别: 骑士
UID: 87585
可可豆: 2041 CB
威望: 2029 点
在线时间: 151(时)
发自: Web Page
回 3楼(woxhty) 的帖子
什么原因?
级别: 新手上路
可可豆: 91 CB
威望: 41 点
在线时间: 441(时)
发自: Web Page
LZ赐教,什么原因导致在导航栏上创建button, 无显示,但action却可以执行
关注本帖(如果有新回复会站内信通知您)
苹果公司现任CEO是谁?2字 正确答案:库克
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 浏览移动版toolbar上添加UIBarButtonItem,排版item的技巧。
UIBarButtonSystemItemFlexibleSpace,严格说它不是一个合格的bar按钮,而是一个可以自由缩放的区域,类似于弹簧,其他地方被占满了它就缩小一些,没占满它就大一些。它用来排版我们这些UIBarButtonItem,有两个UIBarButtonItem时,我们在他们中间增加一个UIBarButtonSystemItemFlexibleSpace,这样就会显示最左边
& ,最右边 各一个按钮。。有三个UIBarButtonItem时,我们在他们每两个中间增加一个UIBarButtonSystemItemFlexibleSpace,这样就会显示最左边
& ,中间,最右边 各一个按钮。& &&
//定义一个toolBar
& & UIToolbar
& & * toolbar = [[UIToolbaralloc]initWithFrame:CGRectMake(0,0,
self.view.frame.size.width,40)];
& & //设置style
& & [toolbar setBarStyle:UIBarStyleBlackTranslucent];
& & //toolbar.backgroundColor = [UIColor redColor];
& & //定义两个flexibleSpace的button,放在toolBar上,这样完成按钮就会在最右边
& & UIBarButtonItem
& & * button1 =[[UIBarButtonItem&alloc]initWithBarButtonSystemItem:& & & & & & & & & & & & & & & & & & & &UIBarButtonSystemItemFlexibleSpace
target:selfaction:nil];
& & UIBarButtonItem
& & * button2 = [[UIBarButtonItem&alloc]initWithBarButtonSystemItem:& & & & & & & & & & & & & & & & & & & &UIBarButtonSystemItemFlexibleSpace
target:selfaction:nil];
& & //定义完成按钮
& & UIBarButtonItem
& & * doneButton = [[UIBarButtonItemalloc]initWithTitle:@&完成&style:UIBarButtonItemStyleDonetarget:selfaction:@selector(resignKeyboard)];
& & //在toolBar上加上这些按钮
& & NSArray
& & * buttonsArray = [NSArrayarrayWithObjects:button1,button2,doneButton,nil];
& & [toolbar setItems:buttonsArray];
& & [self.textfieldsetInputAccessoryView:toolbar];
- (void)resignKeyboard
& & [self.textfieldresignFirstResponder];
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:6413次
排名:千里之外
原创:44篇
转载:33篇
(2)(9)(28)(7)(6)(11)(4)(11)android:ToolBar详解 - 推酷
android:ToolBar详解
这篇文章因为是台湾人写的,语言风格很别致。本文在原文的基础上做了一些微调(主要是繁体字的问题)。
今年(2014) 的 google i/o 发表令多数人为之一亮的 material design,而 google 也从「google i/o 2014」 开始,大家也陆陆续续地看到其更新的 android app 皆套用了这个设计介面。当然,这个设计介面著实让大家感到惊艳外,更让 android 开发者开始担心未来 app 的界面处理了。
不过,所幸有着之前 actionbar 的经验后,android 也很快地在 support library 里面提供了相对应的 api 给开发者使用,本篇就为各位介绍 – toolbar,这是用来取代过去 actionbar 的控件,而现在于 material design 中也对之有一个统一名称:app bar,在未来的 android app 中,就以 toolbar 这个元件来实作之。
Android 3.0 &Android 推了 ActionBar 这个控件出来,而到了 2013 年 Google 开始大力地推动所谓的 android style,想要逐渐改善过去 android 纷乱的界面设计,希望让终端使用者尽可能在 android 手机有个一致的操作体验。ActionBar 过去最多人使用的两大套件就是 ActionBarSherlock 以及官方提供在 support library v 7 里的 AppCompat 中。
既然会有本篇跟各位介绍的 Toolbar,也意味着
官方在某些程度上认为 ActionBar 限制了 android app 的开发与设计的弹性,而在 material design 也对之做了名称的定义:App bar。接下来将为各位分成几个阶段进行说明,如何在 android app 中用 toolbar 这个控件来做出一个基本的 app bar 喽。
本篇所使用到的程序请到
2. 基础套用
这个阶段从 toolbar_demo_checkpoint0 开始,分成下列三个部份:
风格 (style)
介面 (layout)
程式 (java)
2.1 风格(style)
风格要调整的地方有二,一在 res/values/styles.xml 另一在 /res/values-v21/styles.xml,为了之后设定方便,我们先在 res/values/styles.xml 里增加一个名为 AppTheme.Base 的风格
&style name=&AppTheme.Base& parent=&Theme.AppCompat&&
&item name=&windowActionBar&&false&/item&
&item name=&android:windowNoTitle&&true&/item&
因为此范例只单纯使用 Toolbar,所以我们要将让原本的 ActionBar 隐藏起来,做了上面的设定,接著将原本 AppTheme 的 parent 属性 改为 AppTheme.Base,这边完整的程式码如下:
&resources&
&!-- Base application theme. --&
&style name=&AppTheme& parent=&AppTheme.Base&&
&style name=&AppTheme.Base& parent=&Theme.AppCompat&&
&item name=&windowActionBar&&false&/item&
&item name=&android:windowNoTitle&&true&/item&
&/resources&
再来调整在 Android 5 的风格档: &/res/values-v21/styles.xml,也将其 parent 属性改为 &AppTheme.Base:
&?xml version=&1.0& encoding=&utf-8&?&
&resources&
&style name=&AppTheme& parent=&AppTheme.Base&&
&/resources&
2.2 &界面面(Layout)
在 activity_main.xml 里面加入 Toolbar 元件:
&android.support.v7.widget.Toolbar
android:id=&@+id/toolbar&
android:layout_height=&wrap_content&
android:layout_width=&match_parent&
android:minHeight=&?attr/actionBarSize&&
&/android.support.v7.widget.Toolbar&
请记得用 support v7 里的 toolbar,不然然只有 API Level 21 也就是 Android 5 以上的版本才能使用。
这边需注意,要将 RelatvieLayout 裡的针对四个方向 padding 属性拿掉,并记得将原本的 Hello World 设定 layout_below=&@+id/toolbar& ,否则会看到像下面这样的错误画面。
2.3 程序 (Java)
请到 MainActivity.java 里加入 Toolbar 的声明:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
声明后,再将之用 setSupportActionBar 设定,即能取代表原本的 actionbar 了,此阶段完成画面如下:
完整代码见:
3. 自定义颜色(Customization color)
这个阶段将从
接着往下进行:
上图是将本阶段要完成的结果画面做了标示,结合下面的描述希望大家能一目了然(一目了然用错了吧...)。
状态栏底色:colorPrimaryDark在风格 (styles) 或是主题 (themes) 里进行设定。
App bar 底色 这个设定分为二,若你的 android app 仍是使用 actionbar 实作,则直接在风格 (styles) 或是主题 (themes) 里进行设定 colorPrimary 参数即可;可若是采用 toolbar 的话,则要在界面 (layout) 里面设定 toolbar 元件的 background 属性。
导航栏底色:navigationBarColor
仅能设定在 API v21 也就是 Android 5 以后的版本, 因此要将之设定在 res/values-v21/styles.xml 里面。
主视窗底色:windowBackground
也因此在这个阶段,我们需要设定的地方有三,一是主要风格档(res/values/styles.xml)
&style name=&AppTheme.Base& parent=&Theme.AppCompat&&
&item name=&windowActionBar&&false&/item&
&item name=&android:windowNoTitle&&true&/item&
&!-- Actionbar color --&
&item name=&colorPrimary&&@color/accent_material_dark&/item&
&!--Status bar color--&
&item name=&colorPrimaryDark&&@color/accent_material_light&/item&
&!--Window color--&
&item name=&android:windowBackground&&@color/dim_foreground_material_dark&/item&
再来是 v21 的风格档 (res/values-v21/styles.xml)
&style name=&AppTheme& parent=&AppTheme.Base&&
&!--Navigation bar color--&
&item name=&android:navigationBarColor&&@color/accent_material_light&/item&
最后,就是为了本篇的主角 – Toolbar 的 background 进行设定。
&android.support.v7.widget.Toolbar
android:id=&@+id/toolbar&
android:layout_height=&wrap_content&
android:layout_width=&match_parent&
android:background=&?attr/colorPrimary&
android:minHeight=&?attr/actionBarSize&&
&/android.support.v7.widget.Toolbar&
在本范例中,toolbar 是设定来在 activity_main.xml,对其设定 background 属性: android:background=&?attr/colorPrimary& ,这样就可以使之延用 Actionbar 的颜色设定喽。
最后,再来看一下结果画面。
完整代码见:
4. 元件 (component)
本阶段将从
接续,在还未于 &android.support.v7.widget.Toolbar/& &标签中,自行添加元件的 toolbar 有几个大家常用的元素可以使用,请先见下图:
大抵来说,预设常用的几个元素就如图中所示,接着就依序来说明之:
setNavigationIcon即设定 up button 的图标,因为 Material 的介面,在 Toolbar这里的 up button样式也就有別于过去的 ActionBar 哦。
setOnMenuItemClickListener设定菜单各按鈕的动作。
先來看到菜单外的代码,在 MainActivity.java 中:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
// App Logo
toolbar.setLogo(R.drawable.ic_launcher);
toolbar.setTitle(&My Title&);
// Sub Title
toolbar.setSubtitle(&Sub title&);
setSupportActionBar(toolbar);
// Navigation Icon 要設定在 setSupoortActionBar 才有作用
// 否則會出現 back button
toolbar.setNavigationIcon(R.drawable.ab_android);
这边要留意的是
setNavigationIcon需要放在
setSupportActionBar之后才会生效。
菜单部分,需要先在res/menu/menu_main.xml左定义:
&menu xmlns:android=&/apk/res/android&
xmlns:app=&/apk/res-auto&
xmlns:tools=&/tools&
tools:context=&.MainActivity&&
&item android:id=&@+id/action_edit&
android:title=&@string/action_edit&
android:orderInCategory=&80&
android:icon=&@drawable/ab_edit&
app:showAsAction=&ifRoom& /&
&item android:id=&@+id/action_share&
android:title=&@string/action_edit&
android:orderInCategory=&90&
android:icon=&@drawable/ab_share&
app:showAsAction=&ifRoom& /&
&item android:id=&@+id/action_settings&
android:title=&@string/action_settings&
android:orderInCategory=&100&
app:showAsAction=&never&/&
再回到MainActivity.java 中加入OnMenuItemClickListener 的监听者:
private Toolbar.OnMenuItemClickListener onMenuItemClick = new Toolbar.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem menuItem) {
String msg = &&;
switch (menuItem.getItemId()) {
case R.id.action_edit:
msg += &Click edit&;
case R.id.action_share:
msg += &Click share&;
case R.id.action_settings:
msg += &Click setting&;
if(!msg.equals(&&)) {
Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
return true;
将onMenuItemClick监听者设置给toolbar
setSupportActionBar(toolbar);
// Menu item click 的監聽事件一樣要設定在 setSupportActionBar 才有作用
toolbar.setOnMenuItemClickListener(onMenuItemClick);
和 setNavigationIcon 一样,需要將之设定在 setSupportActionBar 之后才有作用。执行上面的代码便会得到下面的界面。
完完整程序见:
在这样的架构设计下,ToolBar直接成了Layout中可以控制的东西,相对于过去的actionbar来说,设计与可操控性大幅提升。
本文上面的解释中用到的完成代码:toolbar demo check point 0 ~ 4,请到
最后再附上一个界面上常用的属性说明图:
这里按照图中从上到下的顺序做个简单的说明:
colorPrimaryDark
状态栏背景色。
在 style 的属性中设置。
textColorPrimary
App bar 上的标题与更多菜单中的文字颜色。
在 style 的属性中设置。
App bar 的背景色
Actionbar 的背景色设定在 style 中的 colorPrimary。
Toolbar 的背景色在layout文件中设置background属性。
colorAccent
各控制元件(如:check box、switch 或是 radoi) 被勾选 (checked) 或是选定 (selected) 的颜色。
在 style 的属性中设置。
colorControlNormal
各控制元件的预设颜色。
在 style 的属性中设置
windowBackground
App 的背景色。
在 style 的属性中设置
navigationBarColor
导航栏的背景色,但只能用在 API Level 21 (Android 5) 以上的版本
在 style 的属性中设置
来自我的博客
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致}

我要回帖

更多关于 toolbar添加按钮 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信