3

我尝试将 CENTER_VERTICAL 添加到 EditText:

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

我需要添加(但不改变!!!)任何其他当前的视图重力。

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

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

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

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

4

3 回答 3

10

Try:

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

You must be knowing the initial gravity set.

于 2013-07-05T07:48:59.197 回答
0

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

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 回答