我在写一个包含EditText的自定义Android视图。我希望能够通过Java代码垂直居中文本,但它不起作用。Android - EditText中的文本编程方式
你可以从上图中看到,该文本不是垂直居中。我将EditText背景设置为浅红色,以便您可以看到它的布局边界。我通过XML代码呈现左边的EditText,它工作正常。
如何让文本正确显示?
。
这里是我的,中间的EditText代码:
txtSearch = new EditText(context);
txtSearch.setLayoutParams(new LinearLayout.LayoutParams(0, LayoutParams.MATCH_PARENT, 1f));
txtSearch.setGravity(Gravity.CENTER_VERTICAL);
txtSearch.setBackgroundColor(context.getResources().getColor(R.color.nowl_red_transparent_12));//Color.TRANSPARENT);
txtSearch.setHint("Search");
txtSearch.setHintTextColor(context.getResources().getColor(R.color.text_hint));
txtSearch.setInputType(InputType.TYPE_CLASS_TEXT);
txtSearch.setMaxLines(1);
txtSearch.setHorizontalScrollBarEnabled(true);
txtSearch.setTypeface(Typeface.create("sans-serif-light", Typeface.NORMAL));
txtSearch.setTextSize(16f);
txtSearch.setEllipsize(TextUtils.TruncateAt.END);
txtSearch.setText("Y u no center");
container.addView(txtSearch);
,这里是对的EditText的代码上正确呈现左:
<EditText
android:layout_width="50dp"
android:layout_height="match_parent"
android:background="@color/transparent"
android:hint="test" />
我试图几乎一切。我用setGravity(Gravity.CENTER_VERTICAL)
,删除/添加属性,等等。没有任何工作。这是Android的错误还是我在这里失踪的东西?它在UI预览和实际的Android设备中看起来也是这样。
谢谢,这工作完美! – Pkmmte 2014-12-13 02:30:24