0

我正在以编程方式添加一个编辑文本,因为我正在设置重力但它不反映。

图片

代码:

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 添加bcc到视图组吗?根据父视图组的类型,您需要执行以下操作:

线性布局:

通过 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 回答
0

当您以编程方式创建 EditText 时,您必须首先设置 setKeyListener(TextKeyListener.getInstance());

否则,您的视图将始终与 Gravity.TOP 对齐。

我不知道真正的原因,但是在为 EditText 指定任何其他参数之前,您必须设置 setKeyListener(TextKeyListener.getInstance());

更正:仅当您通过扩展 EditText 并在 XML 中定义小部件来创建自定义小部件时,它才有效。仅在 Android 5.0.1 上测试

于 2015-02-17T09:56:24.727 回答