2016-05-16 9 views
1

Ich versuche drei Fragmente zu konfigurieren: eines mit der festen Breite auf der linken Seite, eines mit der festen Breite auf der rechten Seite und einer in der Mitte, der den gesamten verbleibenden Raum einnehmen würde. Ich suchte nach einer Lösung und befolgte Vorschläge, die ich online fand. Wenn ich jedoch die App ausführen wollte, erhalte ich einen Fehler:Es wurde keine Ressource gefunden, die dem angegebenen Namen entspricht (bei 'layout_toRightOf' mit dem Wert '@ id/right_item_menu_fragment')

Keine Ressource gefunden, die mit dem angegebenen Namen übereinstimmt (bei 'Layout_toRightOf' mit Wert ' @ id/right_item_menu_fragment ').

Wenn ich die RelativeLayout id = ‚canvas_fragment‘ nach Layout id = ‚right_item_menu_fragment‘ bewegen, dann ist die Installation erfolgreich ist (kein oben genannten Fehler), aber die ‚canvas_fragment‘ ist nicht auf dem Bildschirm sichtbar.

Ich suchte nach diesem Fehler, und es gibt verschiedene Gründe, warum es passieren kann, aber keiner von ihnen gilt für meine Situation. Viele Leute haben diesen Fehler bei der Verwendung von Eclipse, aber ich benutze Android Studio.

Wenn jemand darauf hinweisen kann, was ich falsch mache, wird Hilfe sehr geschätzt.

Hier ist mein Layout:

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
  
android:id="@+id/canvas_layout"
  
android:layout_width="match_parent"
  
android:layout_height="match_parent">
 
  

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
  
    android:id="@+id/left_item_menu_fragment"
  
    android:layout_width="@dimen/item_menu_width"
  
    android:layout_height="match_parent"
  
    android:layout_alignParentLeft = "true"
  
    android:background="#cccccc">
 
  

</RelativeLayout>
 
  

<RelativeLayout 
     xmlns:android="http://schemas.android.com/apk/res/android"
  
     android:id="@+id/canvas_fragment"
  
     android:orientation="vertical"
  
     android:layout_height="match_parent"
  
     android:layout_width="match_parent" 

   android:layout_toLeftOf = "@+id/left_item_menu_fragment"
  
     android:layout_toRightOf = "@id/right_item_menu_fragment"
  
     android:background="#000000" >
 
  

</RelativeLayout>
 
 
  

<RelativeLayout 
     xmlns:android="http://schemas.android.com/apk/res/android"
  
     android:id="@+id/right_item_menu_fragment"
  
     android:layout_width="@dimen/item_menu_width"
  
     android:layout_height="match_parent"
  
     android:layout_alignParentRight = "true"
  
     android:background="#cccccc">
 
  

</RelativeLayout> 

 
 
 
 
 </RelativeLayout> 

+0

Fügen Sie ein '+' vor 'id' hinzu. Das heißt, "@ + id/right_item_menu_fragment" '. Mit Ihrem Layout in dieser Reihenfolge wurde zu diesem Zeitpunkt noch keine ID generiert, was das '+' tut. –

Antwort

1

ich in diese ausgeführt haben, bevor und es scheint ein zukunftsReferenz Problem. Versuchen Sie, die relativen Layouts wie folgt neu anzuordnen, damit der mittlere Abschnitt zuletzt definiert wird.

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/canvas_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

<RelativeLayout 
    android:id="@+id/left_item_menu_fragment" 
    android:layout_width="@dimen/item_menu_width" 
    android:layout_height="match_parent" 
    android:layout_alignParentLeft="true" 
    android:background="#cccccc"> 
</RelativeLayout> 

<RelativeLayout 
    android:id="@+id/right_item_menu_fragment" 
    android:layout_width="@dimen/item_menu_width" 
    android:layout_height="match_parent" 
    android:layout_alignParentRight="true" 
    android:background="#cccccc"> 

</RelativeLayout> 

<RelativeLayout 
    android:id="@+id/canvas_fragment" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    <!-- layout_toLeftOf and layout_toRightOf were backwards. This is correct.--> 
    android:layout_toLeftOf="@id/right_item_menu_fragment" 
    android:layout_toRightOf="@id/left_item_menu_fragment" 
    android:background="#000000" 
    android:orientation="vertical"> 
</RelativeLayout> 

Was Mike M sagt, ist auch wahr. Einzelheiten finden Sie unter this link.

+0

Ich habe es versucht, und das "canvas_fragment" wurde nicht einmal auf dem Bildschirm angezeigt. Nur die linken und rechten Fragmente. Ich habe jedoch herausgefunden, wie man es mit Gewicht anzeigt. Ich definierte das äußere Layout als android: weightSum = "10" und gab jedem einzelnen Fragment entsprechende layout_weights: 1, 9 und 1 –

+0

Ich habe gerade gemerkt, dass 'canvas_fragment' auf der linken Seite von' left_item_menu_fragment' und auf der rechten Seite angeordnet ist von 'right_item_menu_fragment' und das ist rückwärts. Es sollte auf der linken Seite von 'right_item_menu_fragment' und rechts von' left_item_menu_fragment' liegen. Sind Sie einverstanden? Es ist leicht zu übersehen. – Cheticamp

+0

Danke, @Cheticamp, das war der Grund, dass das canvas_fragment nicht angezeigt wurde. Es funktioniert jetzt. –

Verwandte Themen