0

これは、私の質問を説明する、実行できる自己完結型のアプリケーションです。Flex spark DataGrid で LinkBut​​ton を使用してクリック可能な URL を表示する場合、URL の列幅が短くなりすぎると (つまり、ユーザーによって調整される可能性があります)、表示される URL テキストが隣の列にぶつかります。以下のコードを実行すると、次のように表示されます。

ここに画像の説明を入力

これを改善する方法を知っている人はいますか?理想的には、URL テキストは列の幅に収まるように切り捨てられ、この切り捨てが発生するたびにツールチップが表示されます (たとえば、spark の Label プロパティと同様showTruncationTip="true")。人々は実際に何をしますか?

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
   xmlns:s="library://ns.adobe.com/flex/spark" 
   xmlns:mx="library://ns.adobe.com/flex/mx"
   minWidth="300" minHeight="300">
   <fx:Declarations>
     <!-- Define the data -->
     <fx:XMLList id="siteList">
       <site> <name>IMDB</name> <url>http://www.imdb.com</url> </site>
       <site> <name>BoardgameGeek</name> <url>http://www.boardgamegeek.com</url> </site>
       <site> <name>Yahoo! Finance</name> <url>http://finance.yahoo.com</url> </site>
     </fx:XMLList>
     <!-- Use an XMLListCollection for the Spark DataGrid -->
     <s:XMLListCollection id="siteList2" source="{siteList}"/>
  </fx:Declarations>
  <s:layout> <s:VerticalLayout/> </s:layout>
  <s:Panel title="Spark DataGrid Links" width="300" height="300"
      horizontalCenter="0" verticalCenter="0">
    <s:DataGrid id="sparkDataGrid"
        width="100%" height="100%"
        dataProvider="{siteList2}">
        <s:columns>
            <s:ArrayList>
                <s:GridColumn dataField="url" headerText="URL" width="150"  itemRenderer="myItemRenderer"/>
                <s:GridColumn dataField="name" headerText="Name"/>
            </s:ArrayList>
        </s:columns>
    </s:DataGrid>
  </s:Panel>    
</s:Application>

myItemRenderer.mxml というタイトルのファイル (同じディレクトリにある) は次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
  <s:GridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    xmlns:mx="library://ns.adobe.com/flex/mx" >

  <s:HGroup height="25" verticalAlign="middle" horizontalAlign="left">
    <mx:LinkButton label="{data.url}" 
       textDecoration="underline" 
       textRollOverColor="0x7777FF" 
       click="navigateToURL(new URLRequest(data.url))" 
       width="100%" 
       labelPlacement="left" 
       color="0x0000DD"/>       
  </s:HGroup>
</s:GridItemRenderer>
4

1 に答える 1

2

これを改善する1 つの方法(必要に応じて切り捨ててツールチップに表示するのではなく) に を設定clipAndEnableScrollingすることtrueですGridItemRenderer

<s:GridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    xmlns:mx="library://ns.adobe.com/flex/mx" 
    clipAndEnableScrolling="true">

これにより、リンクが許可されたビューポートを超えないように強制されるため、テキストが他の列のテキストを覆い隠すことはありません。数分間の実験で、強制的に切り捨ててツールチップに表示することができませんでした。

于 2012-05-10T18:27:31.197 に答える