1

我有一个 PieChart……现在我也开始支持平板电脑,我需要使图例的 fontSize 更大。但是,以下内容无效:

<mx:Legend dataProvider="{industryChart}"
       height="110" bottom="40"
       height.groupTablets="220" bottom.groupTablets="80"
       fontSize="8" fontSize.groupTablets="16"
       markerHeight="10" markerHeight.groupTablets="20"
       verticalGap="3"
       />

我知道状态是正确的,因为其他属性发生了变化。

我还尝试添加样式部分:

<fx:Style> 
  .legend { 
      fontSize:24; 
  } 
</fx:Style> 


<mx:Legend dataProvider="{industryChart}"
       height="110" bottom="40"
       height.groupTablets="220" bottom.groupTablets="80"
       markerHeight="10" markerHeight.groupTablets="20"
       verticalGap="3"
       styleName="legend"
       />

不用找了。如果我将样式移到 Main.css,它也不起作用。

使用它会发出警告:组件中不支持 CSS 类型选择器:“mx.charts.LegendItem”:

  <fx:Style>
  @namespace mx "library://ns.adobe.com/flex/mx";
  mx|LegendItem { 
      fontSize:24; 
  } 
  </fx:Style>

但是,如果我在 Main.css 中放入相同的内容,它确实有效:

  @namespace mx "library://ns.adobe.com/flex/mx";
  mx|LegendItem { 
      fontSize:24; 
  } 

我遇到的问题是我必须能够在平板电脑状态下使字体更大,而不仅仅是针对所有状态,否则手机上的字体会太大。

伪选择器似乎不起作用:

  mx|LegendItem:groupTablets { 
      fontSize:24; 
  } 

在 Main.cc 或 fx:Style 中,ID 不起作用:

  #pieLegend { 
      fontSize:24; 
  } 

<mx:Legend  id="pieLegend"
    dataProvider="{industryChart}"
    height="110" bottom="40"
    height.groupTablets="220" bottom.groupTablets="80"
    markerHeight="10" markerHeight.groupTablets="20"
    verticalGap="3" 
   />

但是,即使这种方法有效,当 mxml 背后的代码需要通过 id 引用特定组件时也会遇到困难。

我什至感到沮丧并在代码中尝试了这个:

pieLegend.setStyle("fontSize", 24);

没有。呸呸呸。

有任何想法吗?

4

1 回答 1

1

抓住了同样的问题。这里来自 adobe 论坛,可能需要等待 apache flex 才能真正修复:

该问题是基于延迟的错误 ( http://bugs.adobe.com/jira/browse/FLEXDMV-1656 )。有几种解决方法,但最简单的是在 LegendItem 类型选择器上设置 fontSize,如下所示:

<mx:Style> 
LegendItem { 
fontSize:24; 
} 
</mx:Style> 
于 2014-03-17T05:43:10.537 回答