昨天研究了下,有两个方法http://xo-tobacoo.iteye.com/blog/621811,但是都是静态建立子button,类型。今天想想不对,理论上来说,如果那是一个UI类应该是能无限扩展的,研究了下,胜利实现如下:
1)将子标签包含在panel内,将子类包含在panel内是必须的,不然会因为引用和初始化顺序导致的一系列错误:
<components:PanelMy width="500" height="500" title="ui" myTitleBar="{test}">
<mx:MenuBar id="test" height="100%"
dataProvider="{menuXML}"
labelField="@label"
showRoot="true" />
</components:PanelMy>
2)示例PanelMy.as扩展panel类,如下:
package module.procurement.components
{
import flash.events.MouseEvent;
import mx.containers.Panel;
import mx.controls.LinkButton;
import mx.core.UIComponent;
import flash.display.DisplayObject;
public class PanelMy extends Panel
{
var topBar:UIComponent;
public function PanelMy()
{
super();
}
private var maxClick:LinkButton;
private var _myTitleBar:UIComponent;
public function get myTitleBar():UIComponent
{
return _myTitleBar;
}
/**
* @private
*/
public function set myTitleBar(value:UIComponent):void
{
_myTitleBar = value;
invalidateProperties();
invalidateSize();
}
override protected function createChildren():void
{
super.createChildren();
(MouseEvent.CLICK, toMaxHandler);
titleBar.addChild(_myTitleBar);
}
override protected function updateDisplayList (unscaledWidth:Number, unscaledHeight:Number):void
{
super.updateDisplayList(unscaledWidth, unscaledHeight);
_myTitleBar.setActualSize( _myTitleBar.getExplicitOrMeasuredWidth(),
_myTitleBar.getExplicitOrMeasuredHeight() );
}
}
}
3)主mxml程序:
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/halo" xmlns:components="module.procurement.components.*">
<s:layout>
<s:BasicLayout/>
</s:layout>
<fx:Declarations>
<fx:XMLList id="menuXML">
<menuitem label="Customer" data="Customer"/>
<menuitem label="vendor" data="module/procurement/Vendor" enable="YES"/>
<menuitem label="Work" data="Work">
</menuitem>
</fx:XMLList>
</fx:Declarations>
<components:PanelMy width="500" height="500" title="ui" myTitleBar="{test}">
<mx:MenuBar id="test" height="100%"
dataProvider="{menuXML}"
labelField="@label"
showRoot="true" />
</components:PanelMy>
</s:WindowedApplication>
注:此方法完全可以作为扩展flex官方标签的一个范例,想做其它扩展照葫芦画瓢即可。一切皆有可能啊!
分享到:
相关推荐
为了实现TitleBar的可扩展性,我们可以为TitleBar添加更多的功能,如支持自定义背景色、字体颜色、图标等。通过增加更多的setter方法,我们可以方便地调整TitleBar的外观和行为。 通过封装这样一个通用TitleBar,...
在IT行业中,自定义Titlebar是一项常见的任务,尤其是在开发桌面应用程序或者Android应用时。Titlebar,也称为窗口标题栏,是用户界面中的一个重要元素,它通常包含应用的名称、关闭、最小化和最大化按钮,以及可能...
标题中的“android 一个骚气的titlebar”指的是在Android应用开发中,设计的一个独特、个性化的顶部导航栏,通常称为TitleBar或者ActionBar。在Android系统中,TitleBar是应用程序界面的重要组成部分,它用于显示...
在Android应用开发中,TitleBar(也称为ActionBar或Toolbar)是界面顶部显示应用名、操作按钮等信息的区域。自定义TitleBar可以让开发者根据应用的需求...在实际项目中,可以根据需要进一步优化和扩展TitleBar的功能。
在Android应用开发中,TitleBar通常作为界面顶部的导航元素,显示应用的名称或操作按钮。然而,系统默认的TitleBar可能无法满足所有设计需求,因此开发者常常需要自定义TitleBar来实现更个性化的功能和视觉效果。本...
对于iOS开发,使用Swift或Objective-C,可以通过设置`UIWindow`的`isStatusBarHidden`属性来隐藏状态栏,然后自定义顶部导航栏或使用`edgesForExtendedLayout`属性来扩展内容区域覆盖原本的标题栏区域。 在Web应用...
标题中的“自定义的TitleBar”指的是在Android或者iOS应用开发中,开发者为了满足特定设计需求,不使用系统默认的标题栏(ToolBar或NavigationBar),而是自己编写代码创建的个性化标题栏。这种自定义通常是为了实现...
本主题将深入探讨如何为`BaseActivity`自定义TitleBar,提升应用的用户体验和界面一致性。 首先,TitleBar(也称为ActionBar或Toolbar,在Android的不同版本中有所变化)是Android应用程序顶部显示应用名称、操作...
在Android应用开发中,Titlebar(也常被称为ActionBar或Toolbar)是用户界面的重要组成部分,它通常包含应用的名称、图标以及一些操作按钮。自定义Titlebar可以为应用程序提供独特的外观和交互体验,使得UI设计更加...
4. **扩展性**:可能包含扩展功能,如自定义视图、滑动手势、动画效果等,增加标题栏的交互性和趣味性。 5. **易用性**:提供简单直观的API,使得开发者能够快速集成到自己的项目中,降低学习和使用的门槛。 6. **...
### Android标题栏(TitleBar)介绍 在Android应用开发中,`TitleBar`是一个非常重要的UI组件,它位于应用程序界面的顶部,用于显示应用名称、当前活动页面的标题以及一些功能按钮等信息。通过合理的设计与实现,...
在Android应用开发中,标题栏(titlebar)是应用程序界面中的一个重要组成部分,它通常用于显示应用的名称或当前页面的标题。然而,标题栏也可以进行自定义,以满足更多的功能需求,比如添加一个进度条(progressbar...
根据自己喜好定义不同风格的titleBar,已达到界面美观的效果,来吸引跟多的人来观赏
TitleWindow是Flex中的一种容器类,它类似于操作系统中的窗口,通常包含一个标题栏,可以显示标题,并提供一些基本操作,如关闭、最小化、最大化和还原。在本例中,我们讨论的是一个自定义的TitleWindow组件,它增加...
停靠窗口(DockablePanel)的标题栏上还需要加一个停靠按钮,继承Panel后要创建这样一个按钮并把它加入到Panel的titleBar里。 侧边停靠窗口的实现大体就是这样的。我试着写了一下,基本实现了大部分的功能,不过...
* 自定义的 UI 组件,可以根据需要进行修改和扩展。 * 可以展示多种信息,例如,网站图标、标题、进度信息等。 缺点: * 需要进行复杂的布局和样式设置。 * 需要使用多个组件,增加了代码的复杂度。 七、结论 ...
标题中的“下滑显示titleBar,上滑隐藏titleBar”是一个Android应用开发中的功能设计,它涉及到用户界面(UI)交互和自定义控件的实现。在Android系统中,TitleBar通常指的是应用程序顶部显示应用名称、返回按钮和...
总之,`TitleBar-master`项目涵盖了Android开发中的多个核心知识点,从视图设计到交互实现,再到性能优化和扩展性设计,都是Android开发者需要掌握的重要技能。通过学习和使用这样的项目,开发者可以提升自己的专业...
在Android应用开发中,TitleBar(也称为ActionBar或者StatusBar)是界面设计的重要组成部分,它通常位于屏幕顶部,显示应用的名称、图标以及一些操作按钮。本文将深入探讨如何在Android中自定义TitleBar的颜色,使其...
标题栏(TitleBar)和卫星菜单(通常称为汉堡菜单或抽屉菜单)是Android应用界面中常见的组件。本文将深入探讨如何在Android中实现自定义的标题栏和卫星菜单。 首先,我们来看自定义标题栏。在Android系统中,传统...