1

嗨,我设法使图标中心与线性视图中的文本在同一行,但我想在右侧添加一个箭头图像,所以我必须切换到相对视图。如图所示,我无法将相对视图左图标设置为线性视图。

编辑
我想箭头图标留在右边。

在此处输入图像描述
左图是线性的,右图是相对的。

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layercontainer"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp">
<ImageView android:id="@+id/categoryIcon"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:gravity="center_vertical"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentBottom="true"
    android:layout_marginRight="15dp"
    android:layout_marginTop="5dp"
    android:layout_marginBottom="5dp" />
<TextView android:id="@+id/categoryTitle"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:gravity="center_vertical"
    android:layout_alignParentTop="true"
    android:layout_alignParentBottom="true"
    android:layout_toRightOf="@id/categoryIcon"
    android:textStyle="bold"
    android:textSize="22dp"
    android:textColor="#000000"
    android:layout_marginTop="5dp"
    android:layout_marginBottom="5dp" />
<ImageView
        android:id="@+id/nextIcon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:layout_alignParentTop="true"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_marginTop="5dp"
        android:layout_marginBottom="5dp"/>
</RelativeLayout>
4

3 回答 3

4

我建议使用 TextView 属性drawableLeft和 drawableRight

android:drawableLeft="@drawable/whatever"
android:drawableRight="@drawable/arrow"
android:width="fill_parent"

这样并将TextView的重力设置为中心,一切都应该没问题

此外,使用单个 TextView 而不是 RelativeLayout + 3 个视图是对简单性的一大改进。无论如何,如果你坚持使用 3 个视图,使用 LinearLayout 而不是 RelativeLayout 是一个很好的建议。

于 2012-04-09T15:45:51.657 回答
1

为什么不能使用 LinearLayout?

似乎这样会起作用:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/layercontainer" 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:padding="10dp"> 
    <ImageView android:id="@+id/categoryIcon" 
        android:layout_width="wrap_content" 
        android:layout_height="fill_parent" 
        android:gravity="center_vertical" 
        android:layout_marginRight="15dp" 
        android:layout_marginTop="5dp" 
        android:layout_marginBottom="5dp" /> 
    <TextView android:id="@+id/categoryTitle" 
        android:layout_width="wrap_content" 
        android:layout_height="fill_parent" 
        android:gravity="center_vertical" 
        android:textStyle="bold" 
        android:textSize="22dp" 
        android:textColor="#000000" 
        android:layout_marginTop="5dp" 
        android:layout_marginBottom="5dp" /> 
    <ImageView 
        android:id="@+id/nextIcon" 
        android:layout_width="wrap_content" 
        android:layout_height="fill_parent" 
        android:gravity="center_vertical" 
        android:layout_marginTop="5dp" 
        android:layout_marginBottom="5dp"/> 
</LinearLayout> 
于 2012-04-09T15:46:58.953 回答
0

您应该使用 LinearLayout 以获得简单的 xml 结构

因为The LinearLayout is the most simple layout available in Android. A LinearLayout organizes layout components in a linear fashion horizontally or vertically

创建高效布局说明了 RelativeLayout 和 LinearLayout 的性能:

于 2012-04-09T15:53:02.777 回答