我尝试将CENTER_VERTICAL添加到EditText:
((EditText)childView).setGravity( ((EditText)childView).getGravity() | Gravity.CENTER_VERTICAL);
我需要ADD(但不要改变!!!)View的另一个当前重力。
示例,EditText已经具有重力LEFT。我试试
((EditText)childView).setGravity( Gravity.CENTER_VERTICAL);
但新的重力会杀死左重力。
添加新重力的最佳方法是什么?
答案 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上测试