質問

私がやろうとしているのは、編集フィールドの高さを単純に変更することです。これはとても簡単に聞こえますが、私は私を夢中にさせる問題に直面しています。これが私のコードです:

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);編集フィールドの幅と高さを設定する必要があります。それはそうしますが、幅だけではそうです。高さは一定です。 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();
    }
};

このコードでは、フォーカスを正しく管理できません。何を忘れますか?私のフィールドにカーソルが見えません。

何か案が ?

ありがとう

役に立ちましたか?

解決

あなたはそれを取るべき寸法を言っているのではなく、あなたはそれが取り上げることができるスペースの最大量を指定していることを指定しています。したがって、10、50、または500を伝えたとき、それが8の高さのみを使用したい場合、それだけです。オーバーライドする必要があります layout() 編集フィールドでは、その寸法も制御したい場合。

他のヒント

このようにやってみてください..カスタム編集フィールドとレイアウトメソッドの内部を作成します

_editField = new EditField("", initialValueOfTextField) 
    {
        protected void layout(int maxWidth, int maxHeight) 
        {
          int myWidth = getMaxSize() * getFont().getAdvance("W");// define your req width
          int myHeight= 50 // your required height
          super.layout(myWidth, myHeight);
       }
   };
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top