質問

次のデザインに応じてObjectFieldListをカスタマイズすることは可能ですか?

         ----------------------------
ROW#1    ROW NAME
         row details
         ---------------------------
ROW#2    ROW NAME
         row details
         ---------------------------  
ROW#3    ROW NAME
         row details
         ---------------------------

行名は行の詳細よりも大きなフォントになります

基本的に、ObjectListfieldの列に2つのテキスト行が必要です。

役に立ちましたか?

解決

ObjectListField これを行うための正しい方法ではありません - それは本当にのクイックバージョンとして設計されています ListField 文字列の単純なリストが必要な場合。

拡張する必要があります ListField それ自体、そしてあなた自身の実装を提供します ListFieldCallback これにより、データモデルに基づいてリストが表示されます。使用する ListField.setCallback コールバックを設定します。

ListFieldCallback.drawListRow あなたに与えます Graphics コンテキストでは、複数のテキスト行を含めて、必要なものを描くことができます。また、必ず電話してください ListField.setRowHeight リストフィールドでは、2行のテキストで行を十分に高くするために行われます(デフォルトの高さはフォントの高さであるため、テキスト1行のスペースしかありません)。

サンプルコードは次のようなものです(これは完全ではなく、他のコードなしではコンパイルされません):

ListField myListField = new ListField();
myListField.setRowHeight(getFont().getHeight() * 2)

myListField.setCallback(new ListFieldCallback() {
    public void drawListRow(ListField listField, Graphics graphics, int index, int y, int width) {
       // draw the first line of text
       graphics.drawText(0, y, "ROW " + rowNumber);
       graphics.drawText(20, y, "ROW NAME");
       graphics.drawText(20, y + getFont().getHeight(), "row details"); 
    }
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top