2012-09-06 14 views
6

Esta es la parte del código de un diseño muy largo. Por lo tanto, la publicación del código completo no sirve de nada.
Quiero alinear el círculo ROJO.Todas las posiciones se muestran en los círculos de color ROJO.
El ParentLayout de toda la actividad es un RelativeLayout pero no tiene nada que ver con esto.
Por favor, ayúdenme. He probado todas las cosas que sabía.No se puede alinear las vistas

enter image description here

<LinearLayout 
    android:id="@+id/thumbnail" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_below="@+id/texttitle" 
    android:orientation="horizontal" 
    android:layout_marginTop="20dp" 
    android:layout_marginBottom="20dp" 
    android:layout_marginLeft="10dp" 
    android:layout_marginRight="10dp" 
    android:background="@drawable/Layoutborder" 
    > 
     <LinearLayout 
      android:id="@+id/Linearimagetop" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:padding="3dip" 
      android:layout_alignParentLeft="true" 
      android:background="@drawable/image_bg" 
      > 
      <ImageView 
       android:id="@+id/productimage1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:src="@drawable/defaultimage" 
       android:layout_below="@+id/texttitle" 
       /> 
     </LinearLayout> 
     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:padding="5dp" 
      > 
      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Availability " 
       android:textColor="@color/black" 
       android:textStyle="normal" /> 
      <View 
       android:layout_width="1dp" 
       android:layout_height="fill_parent" 
       android:background="@color/black" 
       android:layout_marginLeft="3dp" 
       android:layout_marginRight="3dp"/> 
      <TextView 
       android:id="@+id/availibility" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="In Stock" 
       android:textColor="#4A7023" 
       android:textStyle="normal" 
       android:layout_marginLeft="3dp"/> 
     </LinearLayout> 
</LinearLayout> 

Respuesta

1

Cambiar la tercera LinearLayout a:

<LinearLayout 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:gravity="right" 
    android:padding="5dp" > 

No está seguro de si está satisfecho con ese tipo de diseño.

+0

Oye, he pasado por alto tu respuesta. Reemplazar eso ha hecho el truco. Gracias. –

+0

me alegro de que ayude, np – Aprian

1

El código que ya ha proporcionado no muestra donde se han especificado las propiedades del texto en rojo "aquí". Probablemente podría simplemente agregarlo como otro elemento en su diseño relativo donde especificará la disponibilidad y el stock que lo alinearía con el texto anterior.

Editar: (después de entender su problema real)

Yo sugeriría envasado en otro trazado lineal que le permitirá colocar el texto encima de la imagen como se muestra en el siguiente código.

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="100dp" 
android:orientation="vertical" > 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="20dp" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="right" 
     android:orientation="horizontal" > 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:text="Availability " 
      android:textStyle="normal" /> 

     <View 
      android:layout_width="1dp" 
      android:layout_height="fill_parent" 
      android:layout_marginLeft="3dp" 
      android:layout_marginRight="3dp" /> 

     <TextView 
      android:id="@+id/availibility" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:layout_marginLeft="3dp" 
      android:text="In Stock" 
      android:textColor="#4A7023" 
      android:textStyle="normal" /> 
    </LinearLayout> 
</LinearLayout> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="fill_parent" > 

    <LinearLayout 
     android:id="@+id/thumbnail" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@+id/texttitle" 
     android:layout_marginBottom="20dp" 
     android:layout_marginLeft="10dp" 
     android:layout_marginRight="10dp" 
     android:layout_marginTop="20dp" 
     android:orientation="horizontal" > 

     <LinearLayout 
      android:id="@+id/Linearimagetop" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:padding="3dip" > 

      <ImageView 
       android:id="@+id/productimage1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/texttitle" 
       android:src="@drawable/button" /> 
     </LinearLayout> 
    </LinearLayout> 
</LinearLayout> 

+0

Sospecho que lo que quiso decir es que quiere la disponibilidad | En el texto de Stock que se moverá a la ubicación del texto "Aquí" rojo, no lo tendrá como un nuevo elemento. – Xono

+0

@ Xono Gracias por señalar. – Gan

+0

Lo has hecho de una manera diferente que no puedo usar ya que tiene ciertas limitaciones. Pero lo he comprobado en mi Eclipse y me da un resultado más cercano, así que +1 para eso. –

1

Si todo esto está dentro de un RelativeLayout, retire el LinearLayout exterior (márgenes de movimiento y tal que el primer hijo LinearLayout como se requiere), y cambiar el segundo niño LinearLayout - el uno con el acolchado 5DP - tener

android:layout_alignParentRight="true" 
android:layout_alignParentTop="true" 

Si no quiere hacer esto y tienen que mantener el LinearLayout exterior por alguna razón, mover

android:layout_marginTop="20dp" 

del pariente LinearLayout al primer hijo, y establezca el layout_width del segundo hijo en fill_parent, y agregue android: gravity = "right" a él.

+0

Su respuesta no ha resuelto el problema, pero me dio una idea para resolverlo ... también +1 para usted también. –

0

Esta fue la Otra forma de lograr el Output.Hope anterior puede ayudar a SomeOne.

<RelativeLayout 
    android:id="@+id/thumbnail" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="horizontal" 
    android:layout_marginTop="20dp" 
    android:layout_marginBottom="20dp" 
    android:layout_marginLeft="10dp" 
    android:layout_marginRight="10dp" 
    android:background="@color/white" 
    > 
    <LinearLayout 
     android:id="@+id/Linearimagetop" 
    android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:padding="3dip" 
     android:background="@drawable/image_bg" 
     android:layout_alignParentLeft="true" 
     > 
     <ImageView 
      android:id="@+id/productimage1" 
     android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/defaultimage" 
      android:layout_below="@+id/texttitle" 
     /> 
    </LinearLayout> 
    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:padding="5dp" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" 
     > 
     <TextView 
     android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Availability " 
      android:textColor="@color/black" 
      android:textStyle="normal" /> 
     <View 
      android:layout_width="1dp" 
      android:layout_height="fill_parent" 
      android:background="@color/black" 
      android:layout_marginLeft="3dp" 
      android:layout_marginRight="3dp" 
      /> 
     <TextView 
      android:id="@+id/availibility" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="In Stock" 
      android:textColor="#4A7023" 
      android:textStyle="normal" 
      android:layout_marginLeft="3dp" 
      /> 
    </LinearLayout> 
</RelativeLayout> 
Cuestiones relacionadas