我有一个奇怪的问题,其中一个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" />
平板电脑的结果:
电话结果:
(下面的行是一个自定义视图,不应该相关,因为它在这两个视图下方对齐。)
我尝试将它们包装在LinearLayout中并且没有改变任何东西。出于某种原因,无论如何,文本都不想去中心。更糟糕的是,Eclipse正在取笑我,因为它的布局预览是正确的,但最终的结果却不是。
答案 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"/>