我试图让一些文本在TextView中垂直对齐,但由于某种原因它只是粘在这样的TextView的顶部边缘。
相信我,我已经在Stack Overflow上阅读了几个关于相同或类似问题的问题,并尝试应用所提供的解决方案,但似乎没有任何改变。
例如,我认为立即解决问题的方法是添加属性android:gravity="center_vertical|left"
,但这也无济于事。
这个用户的question几乎完全描述了我的问题,除了他的TextView在RelativeLayout中,而RelativeLayout又在ScrollView中,我不会(也不需要或不想)使用它。他提供的图像也完全适用于我正在尝试的describe和achieve。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="2" >
<ImageView
android:id="@+id/account_server_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/account_server_icon"
android:paddingLeft="16dp"
android:gravity="left" />
<TextView
android:orientation="vertical"
android:id="@+id/tv_account"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="16dp"
android:gravity="left|center_vertical" />
</LinearLayout>
答案 0 :(得分:2)
问题是您的TextView
高度设置为wrap_content
。这意味着文本容器的大小将与文本的高度相同,因此视图中确实没有任何地方可以使内容居中(它实际上已经垂直居中)。
如果您发布的LinearLayout
仅包含ImageView
和TextView
,那么您可以简单地将高度更改为match_parent
和它应该工作正常。
如果LinearLayout
包含其他View
,您可能需要考虑使用RelativeLayout
并将TextView
设置为与图片的顶部和底部对齐
答案 1 :(得分:1)
根据您的成就建议,您只需将gravity
更改为layout_gravity
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="2" >
<ImageView
android:id="@+id/account_server_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/account_server_icon"
android:paddingLeft="16dp"
android:gravity="left" />
<TextView
android:orientation="vertical"
android:id="@+id/tv_account"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="16dp"
android:layout_gravity="left|center_vertical" />
</LinearLayout>
答案 2 :(得分:0)
您需要设置重力然后将文本对齐设置为重力
<TextView
android:orientation="vertical"
android:id="@+id/tv_account"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="16dp"
android:gravity="left|center_vertical"
android:textAlignment="gravity"
/>