当前位置:  开发笔记 > 后端 > 正文

Adobe Flex/AIR:滚动子组件,而不是整个窗口

如何解决《AdobeFlex/AIR:滚动子组件,而不是整个窗口》经验,为你挑选了1个好方法。

我正在使用Adobe Flex和AIR开发一个应用程序,我一直在试图弄清楚如何解决滚动问题.

我的主应用程序窗口的基本结构(大大简化)是这样的:



   
      
      
         
         
            
            
            
            
            
         
         
      
      
   

问题是"MainContent"框可能包含一个巨大的子组件列表,并且该长列表的存在导致垂直滚动条出现在GUI的最高级别,围绕"MainContainer"vbox.

看起来很傻,在整个应用程序窗口周围都有滚动条.

我正在寻找的是一种解决方案,其中滚动条仅应用于"MainContent"vbox(以及Navigation和HelpContent面板,如果它们的内容超出窗口边界).

我在StackOverflow上找到了一个相关的问题,问题的解决方案是在父容器上使用"autoLayout"和"verticalScrollPolicy"属性.

所以我尝试将autoLayout ="false"和verticalScrollPolicy ="off"属性添加到所有父容器,并将verticalScrollPolicy ="on"添加到"MainContent"vbox.但是该实验的最终结果是内容只是从主容器中剪切掉了(并且没有拇指的无用滚动条被添加到MainContent vbox中).

有谁知道如何解决这个问题?



1> Josh Tynjala..:

HBox或VBox将尽可能地努力显示其内容而无需滚动条.这会强制父容器(通常一直到主应用程序)是必须滚动的容器,如果内容太大而不适合可用的边界.

在幕后,HBox或VBox在其measure()函数中设置measuredMinWidth和measuredMinHeight属性,以匹配其子节点所需的尺寸.父容器将遵循该建议,并且滚动任务向上移动显示列表.

hasseg的解决方案在许多情况下起作用,因为它阻止了容器的测量,但它有点像hacky.这是您可以在不为容器构建替换子类的情况下执行的操作.在要滚动的容器实例上,将minWidth或minHeight设置为0.这将优先于该容器的measuredMinWidth或measuredMinHeight属性,允许父级将实际大小设置为更易于管理的大小.

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有