2011-07-01 5 views
1

は、私は私のリストビューの項目に次のようなレイアウトをしたいと言う:ApacheのピボットとカスタムリストビューたItemRenderer

<TablePane styles = "{padding : 5, horizontalSpacing : 5, verticalSpacing : 5}" > 
    <columns> 
     <TablePane.Column width = "1*"/> 
     <TablePane.Column width = "21"/> 
    </columns> 

    <TablePane.Row height="-1"> 
     <TextInput bxml:id ="txtName" 
        textSize="15" /> 
     <TablePane.Filler/> 
    </TablePane.Row> 

    <TablePane.Row height="-1"> 
     <TablePane.Filler/> 
     <ActivityIndicator active="true" width="16" height="16"/> 
    </TablePane.Row> 
</TablePane> 

そして、私は次のカスタムのitemRendererをを持っていると言う:

public class CustomListRenderer extends TablePane 
           implements ListView.ItemRenderer { 
    // stuff here 
} 

するための最良の方法は何ですか上記のBXMLスニペットをカスタムのListRendererで使用しますか?

答えて

0

これは、CustomListRendererを同様の名前のbxmlファイルの "コードビハインド"と呼ぶようにし、ファクトリメソッドを追加してbxmlシリアライザを呼び出すことで自分自身を作成することです。このような何か:

public class CustomListRenderer extends TablePane 
           implements ListView.ItemRenderer { 
    public static CustomListRenderer create() throws IOException, SerializationException { 
    BXMLSerializer bxmlSerializer = new BXMLSerializer(); 
    return (CustomListRenderer) bxmlSerializer.readObject(CustomListRenderer.class, "CustomListRenderer.bxml"); 
    } 

    // rest of your stuff here 
} 

その後CustomListRenderer.bxmlに上記のスニペットを置くが、CustomListRendererするルートアイテムを変更します。

最後に
<my:CustomListRenderer styles = "{padding : 5, horizontalSpacing : 5, verticalSpacing : 5}" 
    xmlns:bxml="http://pivot.apache.org/bxml" 
    xmlns:my="your.java.package.here" 
    xmlns="org.apache.pivot.wtk"> 
    ... rest of your bxml here ... 

、カスタムを使用したいリストビューを作成するときにレンダラ、できます

listview.setItemRenderer(CustomListRenderer.create()); 
関連する問題