【发布时间】:2014-12-13 01:19:21
【问题描述】:
我正在编写一个包含 EditText 的自定义 Android 视图。我希望能够通过 Java 代码使文本垂直居中,但它不起作用。
从上图可以看出,文本没有垂直居中。我将 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 设备中看起来像这样。
【问题讨论】:
标签: java android android-layout android-edittext android-xml