如何将“Imagenview”置于所有元素之下?

时间:2014-01-21 20:56:50

标签: android android-layout android-xml

enter image description here

嗨,我评论说我有这种布局,如果你能看到右边有一行应该在文字下方

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_promocion_item0"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#363636"
android:padding="10dip" >
<LinearLayout 
    android:id="@+id/contenido"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    >
    <LinearLayout
        android:id="@+id/contenido_Nombre"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight=".75"
        android:orientation="horizontal" 
        >
        <TextView 
            android:id="@+id/nombre_promo"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Vodka + Nectar"
            android:textColor="#ffffff"
            android:textSize="25sp"
            android:tag="bold" />
    </LinearLayout>
    <LinearLayout
        android:id="@+id/contenido_precio"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight=".25"
        android:orientation="horizontal" >       
        <ImageView 
            android:id="@+id/separador_lateral"
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:src="@drawable/vertical"
            android:layout_gravity="left"/> 
        <TextView 
            android:id="@+id/precio"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="$2200"
            android:textColor="#ffffff"
            android:textSize="24dp"
            />        
    </LinearLayout>
   <ImageView
    android:id="@+id/separador"
    android:layout_width="0dp"
    android:layout_height="19dp"
    android:layout_weight=".50"
    android:src="@drawable/divierblanco" 
    android:layout_alignParentLeft="true"/>     
</LinearLayout>
</LinearLayout>

..所以是这样的:

NAME: PRICE 

我找不到文字下方的图片....你能帮助我吗?

2 个答案:

答案 0 :(得分:0)

你有太多嵌套LinearLayouts,恕我直言,这可能会对性能造成不利影响并降低可读性。我会使用RelativeLayout和1嵌套LinearLayout

<RelativeLayout
   ...>
    <LinearLayout
       android:id="@+id/someId"
       ....
        <TextView
           ...>
        <ImageView
           ...>
        <TextView
           ...>
    </LinearLayout>
    <ImageView
        android:layout_below="id/someId"
        ...>

这样的事情应该有效。

或者如果这对您不起作用,那么将ImageVIew放在第一个孩子LinearLayout之外也应该有效

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout_promocion_item0"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="#363636"
    android:padding="10dip" >
    <LinearLayout 
        android:id="@+id/contenido"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <LinearLayout
            android:id="@+id/contenido_Nombre"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight=".75"
            android:orientation="horizontal" > 

            <TextView 
                android:id="@+id/nombre_promo"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Vodka + Nectar"
                android:textColor="#ffffff"
                android:textSize="25sp"
                android:tag="bold" />
        </LinearLayout>
        <LinearLayout
            android:id="@+id/contenido_precio"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight=".25"
            android:orientation="horizontal" >       
            <ImageView 
                android:id="@+id/separador_lateral"
                android:layout_width="wrap_content"
                android:layout_height="30dp"
                android:src="@drawable/vertical"
                android:layout_gravity="left"/> 
            <TextView 
                android:id="@+id/precio"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="$2200"
                android:textColor="#ffffff"
                android:textSize="24dp" />

        </LinearLayout>     
      </LinearLayout>
      <ImageView
         android:id="@+id/separador"
         android:layout_width="0dp"
         android:layout_height="19dp"
         android:layout_weight=".50"
         android:src="@drawable/divierblanco" 
         android:layout_alignParentLeft="true"/>  // this doesn't do anything in a LinearLayout

</LinearLayout>

答案 1 :(得分:0)

您的imageView(带有id separador)位于linearLayout内,其方向设置为“horizo​​ntal”。将imageView移动到最外层的linearlayout,如下所示:

编辑:下面显示的xml与我在答案中输入的内容完全不同。那是怎么回事?无论如何,将imageView向下移动一个元素。

<LinearLayout
    android:id="@+id/contenido"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <LinearLayout
        android:id="@+id/contenido_Nombre"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight=".75"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/nombre_promo"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:tag="bold"
            android:text="Vodka + Nectar"
            android:textColor="#ffffff"
            android:textSize="25sp" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/contenido_precio"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight=".25"
        android:orientation="horizontal" >

        <ImageView
            android:id="@+id/separador_lateral"
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:layout_gravity="left"
            android:src="@drawable/vertical" />

        <TextView
            android:id="@+id/precio"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="$2200"
            android:textColor="#ffffff"
            android:textSize="24dp" />
    </LinearLayout>
</LinearLayout>

<ImageView
    android:id="@+id/separador"
    android:layout_width="0dp"
    android:layout_height="19dp"
    android:layout_alignParentLeft="true"
    android:layout_weight=".50"
    android:src="@drawable/divierblanco" /></LinearLayout>