2011-08-15 16 views
11
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 
    <ListView 
     android:layout_above="@id/btn_4" <-- this line error: No resource found 
     android:layout_width="match_parent" 
     android:layout_height="200dp" /> 
    <Button android:id="@+id/btn_4"   <-- I declare the id here 
     android:layout_alignParentBottom="true" 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent" /> 
</RelativeLayout> 

¿Alguna sugerencia?El layout_above de RelativeLayout muestra el error "No se encontró ningún recurso"

Respuesta

26

Según tengo entendido, la primera vez que se utiliza una identificación en un diseño xml, debe tener un signo + delante.

De los documentos Declaring Layout:

El símbolo más (+) significa que se trata de un nuevo nombre de recurso que debe ser creado y añadido a nuestros recursos (en el archivo R.java).

Por lo tanto, añadir un '+' para la primera referencia btn_4 en el diseño y ListView puede quitar el '+' desde el androide innecesaria: Identificación del atributo en la maquetación de botón.

1

Cuando se declara diseños relativos, se tienen que utilizar android:layout_above="@+id/layoutToBeAbove"

De lo contrario, el sistema no sabe lo que está señalando.

Esta declaración apuntará al mismo recurso.

Espero que esto sirvió!

+0

¿Deseas compartir por qué has votado negativamente una respuesta de 15 meses? – Codeman

2

declarar la ListView lista_1 después declarar los Button btn_4 ya que trata de hacer referencia a ella en android:layout_above="@id/btn_4".

+0

XML es un lenguaje de marcado, no hay "orden de ejecución", ya que es sin estado. No importa dónde se declare, simplemente tiene que tener el marcado correcto. – Codeman

+2

¿Eh? XML es lo que haces de él. Puedo analizarlo de arriba hacia abajo si quiero (se mantiene el orden). * * Arregla el problema. Imagine si A podría declararse por encima de B y B se declara por encima de A. –

+1

esta es la respuesta correcta –

Cuestiones relacionadas