1

ListFieldアプリにを使用して、データをリストに表示しています。今、私の要件は、リストの選択されたアイテムの行の高さを増やしたいということです。

GridFieldManagerこのために、このマネージャーを使用してリストを作成し、データを入力しました。onFocus()次に、このマネージャーのメソッドをオーバーライドします。ただし、このメソッドが呼び出されることはありません。その結果、選択した行アイテムの高さを増やすことができません。

助けてください。

4

3 に答える 3

2

ListField行はすべて均一なサイズになるように設計されているため、残念ながら、1つの行のサイズを直接変更することはできません。上と下の行がそれぞれ下と上にフォーカスカラーを少し描画するように設定することで、エミュレートすることができます。または、フォーカスされている行の真上に1つのフィールドを配置することもできます。次に、選択した行の情報を使用して、この「フローティングフィールド」を再描画します。

于 2011-08-24T13:08:28.737 に答える
0

私はそれを動かしました。私は実装を偽造しましたListField。削除ListFieldして、に置き換えましたVerticalFieldManageronfocus()との間にサイズを調整し、このマネージャーの高さを変更するためにonUnfocus()使用しました。sublayout()それは私が望むように正確に機能します。

于 2011-08-29T08:21:19.343 に答える
0
you can increase the row height/font text/...
as ultimately, all of the api's call canvas's paint methods

how to do:
//try playing with the font_type,font height
Font myFont = Font.getDefault().derive(Font.PLAIN, 14, Ui.UNITS_px);

 private class ListCallback implements ListFieldCallback {

public void drawListRow(ListField list, Graphics g, int index, int y, int w) {
                g.setFont(myFont);
                String text = (String)listElements.elementAt(index);
                g.drawText(text, 0, y, 0, w);
//you can increase the height of a particular row in the height parameter.
// if you want it to be specific, put an 'if conditon'
EX: if(index=1)
{
w+=10;
}
            }
}
于 2012-01-03T12:21:34.913 に答える