ObjectListfieldをカスタマイズする方法は?
-
01-10-2019 - |
質問
次のデザインに応じて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");
}
所属していません StackOverflow