`

———使用容器来进行UI布局

阅读更多
In the Flex model-view design pattern, user interface components represent the view. The MXML language supports two types of user interface components: controls and containers. Controls are form elements, such as buttons, text fields, and list boxes. Containers are rectangular regions of the screen that contain controls and other containers.
You use container components for laying out a user interface, and for controlling user navigation through the application. Examples of layout containers include the HBox container for laying out child components horizontally, the VBox container for laying out child components vertically, and the Grid container for laying out child
components in rows and columns. Examples of navigator containers include the TabNavigator container for creating tabbed panels, the Accordion navigator container for creating collapsible panels, and the ViewStack navigator container for laying out panels on top of each other.
The Container class is the base class of all Flex container classes. Containers that extend the Container class add their own functionality for laying out child components. Typical properties of a container tag include id, width, and height. For more information about the standard Flex containers, see “Introducing Containers” on page 419.
The following image shows an example Flex application that contains a List control on the left side of the user interface and a TabNavigator container on the right side. Both controls are enclosed in a Panel container.

A. Panel container B. List control C. TabNavigator container
Use the following code to implement this application:
<?xml version="1.0"?>
<!-- mxml/LayoutExample.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
    <mx:Panel title="My Application" 
        paddingTop="10" 
        paddingBottom="10"
        paddingLeft="10" 
        paddingRight="10"
    >
        <mx:HBox>
            <!-- List with three items -->
            <mx:List>
                <mx:dataProvider>
                    <mx:Array>
                        <mx:String>Item 1</mx:String>
                        <mx:String>Item 2</mx:String>
                        <mx:String>Item 3</mx:String>
                    </mx:Array>
                </mx:dataProvider>
            </mx:List>
            <!-- First pane of TabNavigator -->

            <mx:TabNavigator borderStyle="solid">
                <mx:VBox label="Pane1" width="300" height="150">
                    <mx:TextArea text="Hello World"/>
                    <mx:Button label="Submit"/>
                </mx:VBox>
                <!-- Second pane of TabNavigator -->
                <mx:VBox label="Pane2" width="300" height="150">
                    <!-- Stock view goes here -->
                </mx:VBox>
            </mx:TabNavigator>
        </mx:HBox>
    </mx:Panel>
</mx:Application>

The List control and TabNavigator container are laid out side by side because they are in an HBox container. The controls in the TabNavigator container are laid out from top to bottom because they are in a VBox container.
For more information about laying out user interface components, see “Using Flex Visual Components” on page 113.

    在Flex模型视图的设计模式中,用户界面组件代表着软件的外观。MXML语言支持两种类型的用户界面组件:控件和容器。控件是一些表单元素,如按钮,文本字段和列表框。容器是屏幕上的矩形区域,其中可包含控件和其他容器。
    在整个程序中,通过使用容器组件来进行UI布局,并通过控制应用程序的用户导航。容器布局的例子包括使用HBox容器对其子组件进行水平布局,使用VBox容器对其子组件进行垂直布局,使用Grid容器对子组件进行行列布局。以下是一个使用TabNavigator容器创建一个标签面板,其中使用Accordion导航容器创建可折叠面板,和ViewStack导航容器将各面板按配置顺序置于彼此顶部。
Container类是所有Flex容器类的基类。容器通过扩展容器类,再添加自己的功能来对自己的子组件进行布局。容器标签的典型属性包括id、width、和 height。如需有关标准Flex容器的信息,请参阅419页“介绍容器”。
    下图展示了一个Flex示例UI程序,包含左边的列表控件和右侧TabNavigator容器。这两个控件是封装在一个面板容器中。


A. 面板容器 B. 列表控件 C. TabNavigator容器
使用下面的代码来实现这一程序:
<?xml version="1.0"?>
<!-- mxml/LayoutExample.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
    <mx:Panel title="My Application" 
        paddingTop="10" 
        paddingBottom="10"
        paddingLeft="10" 
        paddingRight="10"
    >
        <mx:HBox>
            <!-- List with three items -->
            <mx:List>
                <mx:dataProvider>
                    <mx:Array>
                        <mx:String>Item 1</mx:String>
                        <mx:String>Item 2</mx:String>
                        <mx:String>Item 3</mx:String>
                    </mx:Array>
                </mx:dataProvider>
            </mx:List>
            <!-- First pane of TabNavigator -->

            <mx:TabNavigator borderStyle="solid">
                <mx:VBox label="Pane1" width="300" height="150">
                    <mx:TextArea text="Hello World"/>
                    <mx:Button label="Submit"/>
                </mx:VBox>
                <!-- Second pane of TabNavigator -->
                <mx:VBox label="Pane2" width="300" height="150">
                    <!-- Stock view goes here -->
                </mx:VBox>
            </mx:TabNavigator>
        </mx:HBox>
    </mx:Panel>
</mx:Application>

    List控件和TabNavigator容器的布局并排排列,是因为他们同在一个HBox容器中。在TabNavigator容器中的控件的排列是从顶部到底部,因为他们在VBox容器中。
如需UI组件布局的详细信息,请参阅113页的“使用Flex可视组件”。
分享到:
评论

相关推荐

    安卓Android源码——android模仿易信UI布局效果源码.rar

    这个压缩包"安卓Android源码——android模仿易信UI布局效果源码.rar"提供了一个学习如何模仿易信(YiXin)用户界面(UI)布局的实例。易信是一款流行的即时通讯应用,其用户界面设计简洁、直观,深受用户喜爱。下面...

    安卓Android源码——BOOK看遍所有UI控件.zip

    3. **自定义View**:如何根据需求创建新的UI组件,包括重写draw()方法进行定制化绘制,以及覆写测量和布局方法。 4. **动画系统**:Android提供了多种动画类型,如属性动画、补间动画等,它们在界面交互中起到关键...

    Android源码——BOOK看遍所有UI控件.zip

    这份名为"Android源码——BOOK看遍所有UI控件.zip"的压缩包,很显然是一个关于深入理解Android UI控件源码的资源集合。通过这本书籍,开发者可以深入学习Android系统的视觉组件,提升对系统底层运作的理解,从而更好...

    Android应用开发——Tencent微博(抽屉UI类型)

    总的来说,通过这篇博客和提供的源码,开发者可以了解到如何在Android应用中实现一个功能完善的Tencent微博抽屉UI,同时也能学习到Tencent微博API的使用方法,这对于开发涉及社交功能的Android应用非常有帮助。

    安卓Android源码——UI界面源码.zip

    2. **XML布局文件**:在Android中,通常使用XML文件来定义UI布局。这些文件位于项目的res/layout目录下,描述了屏幕上的元素位置和关系。例如,`activity_main.xml`可能是一个应用的主要界面布局。 3. **自定义View...

    Android源码——UI界面源码.rar

    `setContentView()`方法用来设置UI布局,通常传入一个XML布局文件的ID。XML布局文件是定义UI结构的主要方式,它允许开发者用声明式的方式定义视图及其属性。 关于资源中的图片文件(1_120916110709_1.jpg、1-...

    Android源码——UI界面源码.zip

    2. **XML布局文件**:Android通常使用XML文件来定义UI布局,这样可以将界面设计与业务逻辑分离,便于维护。在XML中,可以定义组件的属性,如大小、颜色、文字等,并通过Java代码动态加载和操作。 3. **事件处理**:...

    安卓Android源码——高仿网易客户端UI(tabhost).zip

    描述中提到的"安卓Android源码——高仿网易客户端UI(tabhost).zip"与标题一致,表明这是一个包含源代码的压缩包,开发者或学习者可以通过解压和研究这些源代码来理解如何在Android应用中创建类似网易新闻客户端的...

    安卓Android源码——高仿网易客户端UI(tabhost).rar

    本项目“安卓Android源码——高仿网易客户端UI(tabhost)”提供了一个很好的示例,展示了如何利用TabHost来构建类似网易新闻客户端的交互式界面。以下是对该项目中涉及的技术点的详细解释: 1. **TabHost**:...

    第七个范例——布局之LayoutContainer

    他可能讲解了如何使用LayoutContainer来创建响应式布局,以及如何处理复杂的UI组件排列问题。 LayoutContainer通常具备以下特性: 1. **布局策略**:每个LayoutContainer都遵循特定的布局策略,如网格布局、流式...

    libgdx——UI控件

    本篇文章将深入探讨LibGDX中的UI控件及其使用方法。 首先,我们要了解的是`Scene2D`库,这是LibGDX提供的一套用于创建2D图形界面的工具。`Scene2D`包括舞台(Stage)、演员(Actor)、组(Group)等概念,它们共同...

    LigerUI之Grid使用详解(一)——显示数据

    本篇文章将详细介绍如何使用LigerUI的Grid组件来显示数据。 首先,我们需要了解Grid的基本结构。在HTML页面中,你需要创建一个div元素作为Grid的容器。例如: ```html &lt;div id="gridContainer"&gt;&lt;/div&gt; ``` 接下来...

    安卓Android源码——Adroid UI 界面绘制原理分析.zip

    此外,Android使用了一种称为“硬件加速”的机制,它利用GPU来提升UI的渲染性能。默认情况下,大部分现代设备都启用了硬件加速,但有些自定义视图可能需要禁用以避免兼容性问题。 Android的触摸事件处理也是一个...

    Android源码——android tabhost --android UI源码.zip

    这个压缩包"Android源码——android tabhost --android UI源码.zip"可能包含了一些示例代码,图片资源以及关于如何使用TabHost的解释。 首先,我们来深入理解TabHost的工作原理。TabHost是一个容器,它管理着多个...

    安卓Android源码——QQ_UI之分类菜单.zip

    6. **布局管理**:菜单的布局设计是关键,开发者需要根据QQ UI的设计规范,使用`ConstraintLayout`、`GridLayout`等布局工具来实现美观的布局效果。 7. **触摸事件处理**:通过`onTouchEvent`方法处理触摸事件,...

    WPF编程宝典——使用C# 2008和.NET 3.5

    《WPF编程宝典——使用C# 2008和.NET 3.5》这本书是专门为想要深入学习Windows Presentation Foundation(WPF)技术的开发者准备的。WPF是Microsoft .NET Framework 3.5中的一个重要组成部分,它提供了一种全新的...

    安卓Android源码——动态交叉布局demo.zip

    良好的动态交叉布局应该能够适应各种屏幕尺寸和方向,通过使用dimens资源和百分比布局(PercentRelativeLayout或PercentFrameLayout)来实现响应式设计。 11. **调试与测试**: 开发自定义布局时,使用Android ...

    WPF编程宝典——使用C# 2012和.NET 4.5

    读者将学习如何使用Grid、StackPanel、DockPanel等布局容器,以及如何通过样式和模板自定义控件的外观。 **第三章:数据绑定和依赖属性** 数据绑定是WPF的一个核心特性,它实现了UI与业务逻辑之间的松耦合。在这里...

Global site tag (gtag.js) - Google Analytics