私がやろうとしているのは、EditFieldの高さを変更することです。これはかなり簡単に聞こえますが、私は私を夢中にさせる問題に直面しています。これが私のコードです:
public class CMainManager extends HorizontalFieldManager
{
EditField mtxt=new EditField(EditField.FOCUSABLE | EditField.FILTER_DEFAULT);
/* Constructeur */
public CMainManager()
{
add(mtxt);
}
public int getPreferredHeight()
{
return Display.getHeight();
}
public int getPreferredWidth()
{
return Display.getWidth();
}
protected void sublayout(int width, int height)
{
layoutChild(mtxt, 50, 500);
setPositionChild(mtxt, 0, 10);
mtxt.setBackground(
BackgroundFactory.createSolidBackground(0x000000FF));
setExtent(width, height);
}
}
行layoutChild(mtxt、50、500); EditFieldの幅と高さを設定する必要があります。ありますが、幅だけです。高さは一定です。500に設定すると、10に設定した場合と同じ結果が得られます。
私が欠けているものについて何か考えはありますか?これは私がやっているばかげたエラーだと確信しているからです...
ありがとう
==編集
jproffitのヘルプの後、私は自分が間違ったことを理解しました。しかし、それが機能するようになったので(高さを設定できます)、別の問題があります。これが私のコードです:
private EditField m_Txt=new EditField(EditField.FOCUSABLE |
EditField.FILTER_DEFAULT) {
protected void layout(int width, int height)
{
setExtent(Display.getWidth(), m_TxtHeight);
}
public boolean isFocusable()
{
return true;
}
protected void onFocus(int direction)
{
super.onFocus(direction);
invalidate();
}
protected void onUnfocus() {
super.onUnfocus();
invalidate();
}
};
このコードでは、フォーカスを正しく管理できません。何を忘れますか?フィールドにカーソルが表示されません。
何か案が ?
ありがとう