为什么我的编辑文字没有引力......?

时间:2011-12-12 12:08:51

标签: android android-edittext gravity

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

image

代码:

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);

5 个答案:

答案 0 :(得分:1)

此重力bcc.setGravity(Gravity.BOTTOM);仅标记文字应放在EditText内的方式。

如果EditText的父级是RelativeLayout,您可以在RelativeLayout.LayoutParams内提供规则。

答案 1 :(得分:1)

您应该使用layout_gravity,因为gravity定义了如何设置控件(EditText)的内容。

请参阅this question了解详情。

答案 2 :(得分:1)

设置视图父级的重力。如果查看父级是布局,则代码将类似于以下

((LinearLayout) bcc.getParent()).setGravity(Gravity.CENTER_VERTICAL);

答案 3 :(得分:0)

最终您会将此EditText bcc添加到视图组?根据父级的ViewGroup类型,您需要执行以下操作:

<强>的LinearLayout:

通过XML: 你必须设置android:layout_gravity =“center_vertical”。

通过代码:

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

不同的父布局类型的代码会有所不同。

答案 4 :(得分:0)

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

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

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

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