`
xo_tobacoo
  • 浏览: 390990 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

flex的panel 容器titleBar的无限扩展

阅读更多

昨天研究了下,有两个方法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官方标签的一个范例,想做其它扩展照葫芦画瓢即可。一切皆有可能啊!

0
0
分享到:
评论

相关推荐

    android_自定义TitleBar

    为了实现TitleBar的可扩展性,我们可以为TitleBar添加更多的功能,如支持自定义背景色、字体颜色、图标等。通过增加更多的setter方法,我们可以方便地调整TitleBar的外观和行为。 通过封装这样一个通用TitleBar,...

    titlebar实现

    在IT行业中,自定义Titlebar是一项常见的任务,尤其是在开发桌面应用程序或者Android应用时。Titlebar,也称为窗口标题栏,是用户界面中的一个重要元素,它通常包含应用的名称、关闭、最小化和最大化按钮,以及可能...

    android 一个骚气的titlebar

    标题中的“android 一个骚气的titlebar”指的是在Android应用开发中,设计的一个独特、个性化的顶部导航栏,通常称为TitleBar或者ActionBar。在Android系统中,TitleBar是应用程序界面的重要组成部分,它用于显示...

    Android-Android自定义TitleBar

    在Android应用开发中,TitleBar(也称为ActionBar或Toolbar)是界面顶部显示应用名、操作按钮等信息的区域。自定义TitleBar可以让开发者根据应用的需求...在实际项目中,可以根据需要进一步优化和扩展TitleBar的功能。

    自定义组件titlebar

    在Android应用开发中,TitleBar通常作为界面顶部的导航元素,显示应用的名称或操作按钮。然而,系统默认的TitleBar可能无法满足所有设计需求,因此开发者常常需要自定义TitleBar来实现更个性化的功能和视觉效果。本...

    取消 TitleBar

    对于iOS开发,使用Swift或Objective-C,可以通过设置`UIWindow`的`isStatusBarHidden`属性来隐藏状态栏,然后自定义顶部导航栏或使用`edgesForExtendedLayout`属性来扩展内容区域覆盖原本的标题栏区域。 在Web应用...

    自定义的TitleBar

    标题中的“自定义的TitleBar”指的是在Android或者iOS应用开发中,开发者为了满足特定设计需求,不使用系统默认的标题栏(ToolBar或NavigationBar),而是自己编写代码创建的个性化标题栏。这种自定义通常是为了实现...

    BaseActivity自定义TitleBar

    本主题将深入探讨如何为`BaseActivity`自定义TitleBar,提升应用的用户体验和界面一致性。 首先,TitleBar(也称为ActionBar或Toolbar,在Android的不同版本中有所变化)是Android应用程序顶部显示应用名称、操作...

    自定义Titlebar

    在Android应用开发中,Titlebar(也常被称为ActionBar或Toolbar)是用户界面的重要组成部分,它通常包含应用的名称、图标以及一些操作按钮。自定义Titlebar可以为应用程序提供独特的外观和交互体验,使得UI设计更加...

    TitleBar,简单的通用标题栏.zip

    4. **扩展性**:可能包含扩展功能,如自定义视图、滑动手势、动画效果等,增加标题栏的交互性和趣味性。 5. **易用性**:提供简单直观的API,使得开发者能够快速集成到自己的项目中,降低学习和使用的门槛。 6. **...

    Android标题栏TitleBar介绍

    ### Android标题栏(TitleBar)介绍 在Android应用开发中,`TitleBar`是一个非常重要的UI组件,它位于应用程序界面的顶部,用于显示应用名称、当前活动页面的标题以及一些功能按钮等信息。通过合理的设计与实现,...

    Android自定义titlebar中设置progressbar

    在Android应用开发中,标题栏(titlebar)是应用程序界面中的一个重要组成部分,它通常用于显示应用的名称或当前页面的标题。然而,标题栏也可以进行自定义,以满足更多的功能需求,比如添加一个进度条(progressbar...

    自定义titleBar

    根据自己喜好定义不同风格的titleBar,已达到界面美观的效果,来吸引跟多的人来观赏

    Flex带最大化最小化的TitleWindow

    TitleWindow是Flex中的一种容器类,它类似于操作系统中的窗口,通常包含一个标题栏,可以显示标题,并提供一些基本操作,如关闭、最小化、最大化和还原。在本例中,我们讨论的是一个自定义的TitleWindow组件,它增加...

    Flex 侧边停靠控件

    停靠窗口(DockablePanel)的标题栏上还需要加一个停靠按钮,继承Panel后要创建这样一个按钮并把它加入到Panel的titleBar里。  侧边停靠窗口的实现大体就是这样的。我试着写了一下,基本实现了大部分的功能,不过...

    Android标题栏TitleBar全攻略

    * 自定义的 UI 组件,可以根据需要进行修改和扩展。 * 可以展示多种信息,例如,网站图标、标题、进度信息等。 缺点: * 需要进行复杂的布局和样式设置。 * 需要使用多个组件,增加了代码的复杂度。 七、结论 ...

    下滑显示titleBar,上滑隐藏titleBar

    标题中的“下滑显示titleBar,上滑隐藏titleBar”是一个Android应用开发中的功能设计,它涉及到用户界面(UI)交互和自定义控件的实现。在Android系统中,TitleBar通常指的是应用程序顶部显示应用名称、返回按钮和...

    TitleBar-master_Android通用标题栏_

    总之,`TitleBar-master`项目涵盖了Android开发中的多个核心知识点,从视图设计到交互实现,再到性能优化和扩展性设计,都是Android开发者需要掌握的重要技能。通过学习和使用这样的项目,开发者可以提升自己的专业...

    android TitleBar

    在Android应用开发中,TitleBar(也称为ActionBar或者StatusBar)是界面设计的重要组成部分,它通常位于屏幕顶部,显示应用的名称、图标以及一些操作按钮。本文将深入探讨如何在Android中自定义TitleBar的颜色,使其...

    安卓自定义titlebar和卫星菜单(修改)

    标题栏(TitleBar)和卫星菜单(通常称为汉堡菜单或抽屉菜单)是Android应用界面中常见的组件。本文将深入探讨如何在Android中实现自定义的标题栏和卫星菜单。 首先,我们来看自定义标题栏。在Android系统中,传统...

Global site tag (gtag.js) - Google Analytics