3

CENTER_VERTICAL を EditText に追加してみます:

((EditText)childView).setGravity( ((EditText)childView).getGravity() | Gravity.CENTER_VERTICAL);

View の別の現在の重力を追加する必要があります (ただし、変更しないでください!!!)。

例、EditText には既に重力 LEFT があります。私は試します

((EditText)childView).setGravity( Gravity.CENTER_VERTICAL);

しかし、新しい重力は左の重力を殺すことです。

新しい重力を追加する最良の方法は何ですか?

4

3 に答える 3

10

試す:

((EditText)childView).setGravity(Gravity.LEFT | Gravity.CENTER_VERTICAL);

初期重力セットを知っている必要があります。

于 2013-07-05T07:48:59.197 に答える
0

paramsに設定することで重力を試すことができます

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
params.gravity = Gravity.CENTER_VERTICAL;

((EditText)childView).setLayoutParams(params);
于 2013-07-05T06:45:57.890 に答える
0

プログラムで EditText を作成するときは、最初に setKeyListener(TextKeyListener.getInstance()); を設定する必要があります。

そうしないと、ビューは常に Gravity.TOP に揃えられます。

本当の理由はわかりませんが、EditText に他のパラメーターを指定する前に、setKeyListener(TextKeyListener.getInstance()); を設定する必要があります。

修正: EditText を拡張し、ウィジェットを XML で定義してカスタム ウィジェットを作成した場合にのみ機能します。Android 5.0.1 でのみテスト済み

于 2015-02-17T10:00:33.800 に答える