我正在以编程方式添加一个编辑文本,因为我正在设置引力但不反映。
代码:
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);
答案 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上测试