如何在文本视图的中心设置文本

时间:2016-03-31 09:59:08

标签: android android-layout textview

我正在制作列表视图,其中我有一个图像视图,在左边我必须对齐TextView,它应该在它的中心有文本而不是它的底部。我设置了引力,但它在设计中看起来很好,但是当我运行我的应用程序并在列表视图中获取数据时,文本将设置在底部。

我会告诉你我的意思。但首先让我告诉你我是如何做到这一点的

<RelativeLayout
                android:id="@+id/block_address"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="2dp"
                android:orientation="horizontal">

                <ImageView
                    android:id="@+id/iv_address"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/pin" />

                <TextView
                    android:id="@+id/row_address"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_alignBaseline="@+id/iv_address"
                    android:layout_alignBottom="@+id/iv_address"
                    android:layout_marginLeft="3dp"
                    android:layout_toRightOf="@+id/iv_address"
                    android:gravity="center|center_vertical"
                    android:text="Address Goes here"
                    android:textColor="#AAAAAA" />


            </RelativeLayout>

这就是我得到这个

的方式

enter image description here

这就是我想要的

enter image description here

你可以在第二张图片中看到我想要这种类型的调整。在设计预览中,它向我展示了与预期相似的设计。但是,当我运行应用程序时,它只是向我显示文字,就像我在图片中向您展示的那样。

请告诉我我做错了什么,以及如何限制这一点,不要忘记这一点。

5 个答案:

答案 0 :(得分:4)

将整个代码替换为:

  <TextView
                        android:id="@+id/row_address"
                        android:layout_width="wrap_content"
                        android:layout_height="match_parent"
                        android:android:drawableLeft="@drawable/pin"
                        android:drawablePadding="10dp"
                        android:gravity="center|center_vertical"
                        android:text="Address Goes here"
                        android:textColor="#AAAAAA" />

答案 1 :(得分:2)

您可以添加可绘制图标

<TextView
    android:drawableLeft="@drawable/..."/>

答案 2 :(得分:2)

将TextView替换为:

<TextView
                android:id="@+id/row_address"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_alignTop="@+id/iv_address"
                android:layout_alignBottom="@+id/iv_address"
                android:layout_marginLeft="3dp"
                android:layout_toRightOf="@+id/iv_address"
                android:gravity="center|center_vertical"
                android:text="Address Goes here"
                android:textColor="#AAAAAA" />

答案 3 :(得分:0)

使用LinearLayout而不是RelativeLayout作为这样的事情在LinearLayout中非常容易

-- Create a virtual disk
subst t: C:\Windows\assembly

-- Delete log4net x64 assembly
del t:\GAC_64\log4net\1.2.10.0__692fbea5521e1304\log4net.dll

-- remove the virtual disk
subst t: /d

答案 4 :(得分:-1)

尝试使用LinearLayout而不是RelativeLayout。因为它易于对齐。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/block_address"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:orientation="horizontal"
xmlns:android="http://schemas.android.com/apk/res/android">

<ImageView
    android:id="@+id/iv_address"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/logout" />

<TextView
    android:id="@+id/row_address"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_marginLeft="3dp"
    android:gravity="center|center_vertical"
    android:text="Address Goes here"
    android:textColor="#AAAAAA" />

</LinearLayout>