以编程方式将重力添加到EditText

时间:2013-07-05 06:35:57

标签: java android android-edittext gravity

我尝试将CENTER_VERTICAL添加到EditText:

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

我需要ADD(但不要改变!!!)View的另一个当前重力。

示例,EditText已经具有重力LEFT。我试试

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

但新的重力会杀死左重力。

添加新重力的最佳方法是什么?

3 个答案:

答案 0 :(得分:5)

<强>尝试:

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

你必须知道初始引力设置。

答案 1 :(得分:0)

您可以通过在params中设置重力来尝试重力

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

((EditText)childView).setLayoutParams(params);

答案 2 :(得分:0)

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

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

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

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

相关问题