设置文本重心垂直在android编辑文本中不起作用

Posted

技术标签:

【中文标题】设置文本重心垂直在android编辑文本中不起作用【英文标题】:set text gravity center vertical doesn't work in android edit text 【发布时间】:2016-09-30 20:59:54 【问题描述】:

我正在android中创建一些自定义EditText(使用java编程),当我想setGravity为这个EditText设置垂直中心的文本重力时,它不起作用。

这是我的EditText,我使用了editText.setGravity(Gravity.CENTER_VERTICAL);。但它不会将文本设置为按钮的中心。实际上editText.setGravity(Gravity.CENTER_HORIZONTAL); 工作正常。

由于版本 API,我不想使用 editText.setTextAlignment();

已编辑:

我可以手动设置EditText的文本位置吗?给它我的高度,或者给它一些坐标。

【问题讨论】:

请发布edittext xml代码和java代码 贴代码太复杂了。但我可以向你保证,我正确地创建了 EditText。而且我只使用没有任何 xml 代码的 java 代码。 【参考方案1】:
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
params.gravity = Gravity.CENTER_HORIZONTAL;

editText.setLayoutParams(params);

这是您可以通过编程方式设置重力的方式

在 XML 文件中

<EditText
    android:id="@+id/editText"
    android:layout_
    android:layout_
    android:gravity="center_horizontal" />

如果您想同时应用CENTER_VERTICALCENTER_HORIZONTAL,可以使用中心Gravity.CENTER。 xml 文件也是如此

【讨论】:

这个结果如何? 什么也没发生。文本仍然在 EditText 的顶部。请查看我的问题编辑。【参考方案2】:

请检查以下答案以使文本居中。

<EditText
                android:id="@+id/Name"
                android:layout_
                android:layout_
                android:inputType="text"
                android:gravity="center" />

【讨论】:

起初我想要一些带有java代码的东西。我把你的代码转成java代码后就不行了。【参考方案3】:

如下设置重力:

TextView ta  = (TextView) findViewById(R.layout.text_view);
LayoutParams lp = new LayoutParams();
lp.gravity= Gravity.CENTER_HORIZONTAL; 
ta.setLayoutParams(lp);

【讨论】:

以上是关于设置文本重心垂直在android编辑文本中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

编辑文本中的文本在android中未垂直对齐

设置 UILabel 对齐顶部在单元格中不起作用

为啥垂直对齐:中间;在这段代码中不起作用? [复制]

Summernote 文本编辑器在生成 html 的简单引导页面中不起作用

垂直偏差和指南在 recyclerview android 中不起作用

向下滚动以查找文本在 android 模拟器中不起作用的元素