2011-07-05 8 views
7

Ahora aquí es mi código XML para el diseñoDisposición relativa No consiguiendo a continuación como se define

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

     <RelativeLayout 
         android:id="@+id/RelativeLayout01" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content"> 
      <ImageView 
         android:layout_width="fill_parent" 
         android:layout_height="fill_parent" 
         android:background="@drawable/default1" 
         android:id="@+id/default1" 
         android:layout_gravity="center" 
         android:scaleType="fitXY"> 
      </ImageView> 

      <ImageView 
         android:layout_marginTop="19dp" 
         android:layout_width="180dp" 
         android:layout_height="45dp" 
         android:src="@drawable/fc_postyour_best_score_bg" 
         android:id="@+id/postscore" 
         android:layout_alignParentRight="true" 
         android:scaleType="fitXY"> 
      </ImageView> 

      <ImageButton 
         android:layout_marginTop="22dp" 
         android:layout_width="35dp" 
         android:layout_height="35dp" 
         android:background="@drawable/fctwitterup" 
         android:layout_marginLeft="7dp" 
         android:id="@+id/twitter" 
         android:layout_alignRight="@id/postscore" 
         android:scaleType="fitXY"> 
      </ImageButton> 

      <ImageButton 
         android:layout_marginTop="22dp" 
         android:layout_width="35dp" 
         android:layout_height="35dp" 
         android:background="@drawable/fcfacebookdown" 
         android:id="@+id/fb" 
         android:layout_toLeftOf="@id/twitter"> 
      </ImageButton> 

      <ImageButton 
         android:layout_width="160dp" 
         android:layout_height="40dp" 
         android:background="@drawable/fsremove_ads_down" 
         android:id="@+id/fsremove_ads_down"      
         android:layout_below="@id/postscore" 
         android:layout_alignParentRight="true" 
         android:layout_marginBottom="3dp"> 
      </ImageButton> 

      <ToggleButton 
         android:id="@+id/fsvibrate_on" 
         android:layout_width="135dip" 
         android:layout_height="35dip" 
         android:textOff="" 
         android:textOn="" 
         android:layout_below="@+id/fsremove_ads_down" 
         android:layout_alignParentRight="true" 
         android:background="@drawable/fsvibrate_on"> 
      </ToggleButton> 

      <ImageButton 
         android:layout_width="210dp" 
         android:layout_height="60dp" 
         android:background="@drawable/fcplaydown" 
         android:id="@+id/fcplaydown" 
         android:layout_centerInParent="true"> 
      </ImageButton> 

      <ToggleButton 
         android:id="@+id/fcsoundondown" 
         android:layout_width="35dp" 
         android:layout_height="35dp" 
         android:textOff="" 
         android:textOn="" 
         android:layout_below="@+id/fcplaydown" 
         android:background="@drawable/fcsoundondown"> 
      </ToggleButton> 


     </RelativeLayout> 

</LinearLayout> 

Así que mi problema es @+id/fcsoundondown botón Alternar he puesto por debajo de @+id/fcplaydown pero no se viene abajo al botón especificado, pero viene después "@+id/postscore"

+0

¿Puede compartir una captura de pantalla que ilustra su problema? – Udayan

Respuesta

12

no sé explicar muy bien por qué sucede esto, pero que está relacionado con la configuración de la @+id/fcplaydown ImageButton a centrar en los padres, y siendo su padre un RelativeLayout con un ancho de wrap_content y la altura, el el diseño se confunde.

Por lo tanto, cambie la configuración RelativeLayout a match_parent, y funcionará.

<RelativeLayout 
    android:id="@+id/RelativeLayout01" 
    android:layout_height="match_parent" 
    android:layout_width="match_parent"> 
+0

Gracias, esto funciona, pero ahora quiero poner un botón en el lado derecho de @ + id/fcsoundondown, pero parece que en la parte superior de la pantalla puede ¿¿¿guíame??? –

+0

\t \t

+0

androide: layout_toRightOf acaba de establecer su posición en horizontal, hay que añadir otra propiedad para establecer su posición en vertical también, tal vez un androide: layout_alignTop = "@ id/fcsoundondown" o android: layout_alignBottom = "@ id/fcsoundondown", o ambos, dependiendo de tus preferencias – Adinia

-1

@ + Identificación del debe usarse sólo cuando va a asignar un nuevo ID para el elemento. Mientras que cuando se refiere a un elemento, use @id.

El símbolo-at (@) al comienzo de la cadena indica que el analizador XML debe analizar y expandir el resto de la cadena ID e identificarla como un recurso ID. El símbolo más (+) significa que este es un nuevo nombre de recurso que debe crearse y agregarse a nuestros recursos (en el archivo R.java).

Referencia: http://developer.android.com/guide/topics/ui/declaring-layout.html#id

+1

okk okkk que he cambiado pero mi problema sigue ahí, por favor, den cualquier truco para eso –

0

la vista Disposición id de se utilizan para relacionar ubicaciones y tamaños. Ahora, cuando se define una identificación, se almacena en R.java. Todos sabemos eso. Bueno, lo que no sabemos es que las vistas dentro de RelativeLayout se construyen a partir de más de un análisis del archivo de diseño. Teniendo en cuenta que la compilación es un proceso costoso, y que es necesario optimizar en este proceso, Android necesita que se restablezca la identificación con un signo + cuando desee usarlo, no solo cuando lo declare. Aunque es un poco confuso, así es como debe ser utilizado.

Cuestiones relacionadas