Android TextView + ImageView对齐适用于平板电脑,但不适用于手机布局

时间:2013-10-24 14:29:56

标签: android android-imageview textview

我有一个奇怪的问题,其中一个TextViews中的文本未能与旁边的ImageView正确对齐。奇怪的是,在平板电脑上,没有问题,但在手机上,文字不会垂直居中。这个问题的平板电脑和手机的xml完全相同,我将我的平板电脑布局xml代码复制并粘贴到我的手机布局xml中:

<TextView
 android:id="@+id/newTaskTV"
 style="@style/blueTextMediumBold"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_alignBottom="@+id/newTaskIV"
 android:layout_alignTop="@+id/newTaskIV"
 android:layout_toLeftOf="@+id/newTaskIV"
 android:background="@drawable/domacare_blue_button_selector"
 android:gravity="center_vertical"
 android:paddingLeft="15dp"
 android:paddingRight="15dp"
 android:text="@string/add_task"
 android:textColor="@color/white" />

<ImageView
 android:id="@+id/newTaskIV"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_alignParentRight="true"
 android:background="@drawable/blue_button_selector"
 android:padding="5dp"
 android:src="@drawable/ic_add_white" />

平板电脑的结果:

tablet image

电话结果:

phone image

(下面的行是一个自定义视图,不应该相关,因为它在这两个视图下方对齐。)

我尝试将它们包装在LinearLayout中并且没有改变任何东西。出于某种原因,无论如何,文本都不想去中心。更糟糕的是,Eclipse正在取笑我,因为它的布局预览是正确的,但最终的结果却不是。

eclipse image

2 个答案:

答案 0 :(得分:0)

TextView应位于ImageView下方。据我所知,RelativeLayout需要在android:layout_alignBottom="@+id/newTaskIV"等属性中引用的视图在(=上)之前定义。

显然这不再适用,因为它适用于您的平板电脑,所以我想知道它是否可以来自您手机上的旧操作系统版本。

答案 1 :(得分:0)

如果你不想在两个地方单独处理事件,你可以使用带有图像的文本视图。

<TextView android:id="@+id/newTaskTV" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="@string/add_task" android:drawableRight="@drawable/image" android:drawablePadding="5dp" android:singleLine="true"/>