我的多行编辑文字带有 100dp lineSpacingExtra 。
现在文本显示在一行的顶部。并且光标的高度与行高相同,它比文本的高度高得多。
如何将文字显示在行的中心? 或者,如果我可以在一行中调整文本的填充顶部或填充底部。
注意: 我的意思是不使用android:gravity =“center_vertical”使文本中心在TextView中垂直。 我想在行中垂直显示文本中心。
xml如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@android:color/transparent"
android:fadingEdge="vertical"
android:gravity="top"
android:inputType="textCapSentences|textMultiLine|textShortMessage"
android:lineSpacingExtra="100dp"
android:longClickable="false"
android:minLines="10"
android:paddingBottom="5dp"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:paddingTop="5dp"
android:scrollbars="vertical"
android:text="Text ABCDE\n Line2"
android:textAlignment="center"
android:textSize="16sp" />
</LinearLayout>
感谢任何帮助。 THX!
答案 0 :(得分:0)
编辑答案:
输出是:
代码(来自我自己的xml标签,因此请更改您的ID):
<LinearLayout
android:id="@+id/layout_feedback"
android:layout_width="401dp"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_six"
android:layout_centerHorizontal="true"
android:layout_marginTop="27dp"
android:background="@drawable/textfield_activated_holo_dark"
android:gravity="center_horizontal"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
android:gravity="center_horizontal"
android:hint="Em "
android:visibility="invisible"
android:textColor="@color/white"
android:textSize="24sp" />
<EditText
android:id="@+id/ed_feedback_know"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/textfield_empty_holo_dark"
android:focusable="true"
android:text="Text ABCDE\n Line2"
android:focusableInTouchMode="true"
android:inputType="textEmailAddress"
android:textColor="@android:color/black"
android:textSize="24sp" />
</LinearLayout>
答案 1 :(得分:0)
在此附上我的结果:
在申请中无法做到这一点
因为TextView在框架的顶部绘制文本
如果您希望文本显示的文本垂直居中的视觉效果,则必须修改框架代码。
文件位置是:
框架/碱/核心/ JAVA /机器人/文本/ StaticLayout.java
改变:
- lines[off + DESCENT] = below + extra;
+ lines[off + DESCENT] = below + extra/2;//Show the text center vertically in the line.
如果出现问题或者有更好的方法,请纠正我。