簡體   English   中英

Flex DataGroup設置項目渲染器的高度

[英]Flex DataGroup setting the height of the item renderer

最近幾天,我一直在與渲染器一起玩移動應用程序。 我正在創建一個網格狀的渲染器,其中的列對於移動應用程序而言是輕量級的。 這有點像一個窮人的數據網格。 布局很好。 我的問題是控制列表中每一行的高度。

調用measure()時,我將measuredHeight設置為:

  measuredHeight = getElementPreferredHeight(ld) + verticalPadding; 

垂直填充為:

  var verticalPadding:Number = getStyle("paddingTop") + getStyle("paddingBottom");

當我在桌面上調試時,measuredHeight設置為12,在設備(Motorola Atrix)上,將其設置為12。

但是,當調用layoutContents時,unscaledHeight比我的測得的Height值大得多(在設備上為44,在桌面上運行時為66),導致每個項目周圍的垂直空白超出我的期望。

我確定我缺少了什么,但是如何控制行高呢? 在這個特定的示例中,我碰巧使用了一個數據組,但是在一些簡單的列表中,我遇到了同樣的問題。 系統在某個地方用其他一些值覆蓋了我的measuredHeight。

有任何想法嗎?

蘭迪

您的代碼段是渲染器的一部分還是數據組的一部分? 或者別的地方?

在Flex中,父母始終負責為其子女定尺寸。 對於渲染器,DataGroup是父級,渲染器實例是子級。 因此,無論您在itemRenderer中指定什么尺寸,都可能無法使用它。 measuredHeight和measuredWidth只是父容器可以根據其實現選擇忽略(或不忽略)的建議。

您可以使用TypicalItem來幫助計算默認的行大小。

您還可以創建一個自定義布局類來確定孩子的大小和位置。

使用VerticalLayout時 ,除非將variableRowHeight設置為true,否則寬度是固定的。 文檔中的更多信息 您還可以在布局類上設置rowHeight屬性,以指定所有行的高度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM