0

重力を設定しているが反映していないという点で、プログラムで編集テキストを1つ追加しています。

画像

コード:

EditText bcc = new EditText(getApplicationContext());
        LayoutParams para = new LayoutParams(LayoutParams.FILL_PARENT, 45);
        //bcc.setBackgroundColor(Color.parseColor("#00000000"));
        bcc.setTextColor(Color.parseColor("#000000"));
        bcc.setSingleLine(true);
        para.setMargins(0, 0, 0, 5); // left, top, right, bottom.       
        bcc.setTextSize(15);
        bcc.setGravity(Gravity.BOTTOM);
        bcc.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
        bcc.setId(100);
        bcc.setLayoutParams(para);
4

4 に答える 4

1

この重力bcc.setGravity(Gravity.BOTTOM);は、テキストが の中にどのように配置されるかのみを示しますEditText

EditText の親が である場合、RelativeLayout内部でルールを指定できますRelativeLayout.LayoutParams

于 2011-12-12T12:14:09.260 に答える
1

ビューの親の重力を設定します。ビューの親がレイアウトの場合、コードは次のようになります

((LinearLayout) bcc.getParent()).setGravity(Gravity.CENTER_VERTICAL);
于 2011-12-12T12:44:49.057 に答える
0

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

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

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

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

于 2015-02-17T09:56:24.727 に答える
0

最終的に、この EditTextbccをビュー グループに追加しますか? 親の ViewGroup のタイプに応じて、次の操作を行う必要があります。

LinearLayout:

XML 経由: android:layout_gravity="center_vertical" を設定する必要があります。

コード経由:

LinearLayout.LayoutParams lp = viewGroup.getLayoutParams();
lp.gravity = Gravity.CENTER_VERTICAL;
viewGroup.setLayoutParams(lp);

コードは、親レイアウト タイプによって異なります。

于 2011-12-12T12:35:43.260 に答える