1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

XML-Layouting: RelativeLayout lässt sich nicht anordnen

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von fugu2.0, 19.03.2010.

  1. fugu2.0, 19.03.2010 #1
    fugu2.0

    fugu2.0 Threadstarter Neuer Benutzer

    Beiträge:
    18
    Erhaltene Danke:
    3
    Registriert seit:
    12.03.2010
    Heyho ihrs!

    Ich habe ein Problem beim Layouten in XML. Und zwar lässt sich das RelativeLayout mit der id "additional_product_infos" nicht unterhalb der "order_buttons" anordnen. Aus irgendeinem Grund wird dieser Teil direkt oben in der ScrollView platziert. Lass ich das umkapselnde Layout bei den Buttons weg und setze dann im additional_product_infos layout_below="@id/direct_order" wird alles korrekt dargestellt. Allerdings will ich die Buttons auf einem gemeinsamen, farblich vom Rest abgehobenen Hintergrund haben. Hier mein XML-Code (die background-Elemente dienen nur zur unterscheidung der einzelnen Komponenten):

    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <!--Ur-Layout mit Header und ScrollView -->
    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
          android:layout_height="fill_parent">
          
          <TextView
             android:id="@+id/header"
               android:layout_width="fill_parent"
             android:layout_height="wrap_content"
             android:background="@drawable/frontpage_footer_bg"/>
             
         <!-- ScrollView beinhaltet alles, was später über den Screen scrollen soll -->
          <ScrollView
               android:id="@+id/scroll_content"
               android:layout_width="fill_parent"
               android:layout_height="fill_parent"
               android:background="@layout/background"
               android:layout_below="@id/header"> 
       
               <!-- Kapselndes RelativeLayout für den Inhalt der ScrollView. 
                    ScrollView kann nur ein Layout als Child beinhalten! -->
            <RelativeLayout
                   android:layout_gravity="fill"
                   android:layout_width="fill_parent"
                   android:layout_height="wrap_content"
                android:layout_margin="10dip"
                   android:background="#00FF00">
                   
                   <TextView
                    android:id="@+id/title_manufacturer"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:textColor="#ffffff"
                    android:textStyle="bold"
                    android:background="#ff0000"
                    android:text="iMac 27''\nAPPLE"/>
                    
                   <ImageView
                       android:layout_below="@id/title_manufacturer"
                    android:background="#0000ff"
                    android:id="@+id/product_picture"
                    android:maxWidth="150dip"
                    android:maxHeight="150dip"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/icon150x150"/>
                
                <!-- RelativeLayout für TextViews, die rechts neben dem Produkt-
                     bild angezeigt werden sollen (Preis, Versandkosten, Versanddetails  -->
                <RelativeLayout
                    android:id="@+id/price_and_shipping_info"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_toRightOf="@id/product_picture"
                    android:layout_below="@id/title_manufacturer"
                    android:layout_marginLeft="10dip"
                    android:layout_marginTop="10dip"
                    android:background="#772288">
                        
                       <TextView
                        android:background="#558800"
                        android:id="@+id/price"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                           android:layout_below="@id/title_manufacturer"
                        android:text="@string/price"/>
                        
                       <TextView
                        android:background="#996633"
                        android:id="@+id/product_price"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@id/price"
                        android:text="997,56€"/>
                        
                       <TextView
                        android:background="#0aa0aa"
                        android:id="@+id/shipping_costs"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@id/product_price"
                        android:text="@string/shipping_costs"/>
                        
                       <TextView
                        android:background="#336699"
                        android:id="@+id/shipping"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@id/shipping_costs"
                        android:text="5,99€"/>
                        
                       <TextView
                        android:background="#abcde0"
                        android:id="@+id/shipping_details"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@id/shipping"
                        android:textColor="#000000"
                        android:text="Versandbereit innerhalb der nächsten vierundzwanzig Stunden"/>
                </RelativeLayout>
                
                 
                <!-- LinearLayout für die Buttons, die unter dem Produktbild angezeigt werden sollen --> 
                <LinearLayout
                    androidid="@+id/order_buttons"
                    android:orientation="horizontal"
                    android:gravity="center"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="30dip"
                    android:layout_below="@id/price_and_shipping_info"
                    android:background="#ffff00">
                
                    <Button
                        android:id="@+id/add_to_cart"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:text="@string/add_to_cart"/>
                    
                    <Button
                        android:id="@+id/direct_order"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:text="@string/direct_order"/>
    
                </LinearLayout>
                
                <!-- RelativeLayout das die zusätzlichen Produktinformationen darstellen soll.
                     Problem: wird trotz android:layout_below="@id/order_buttons" nicht unter 
                     den Buttons angezeigt -->        
                <RelativeLayout
                    android:id="@+id/additional_product_informations"
                    android:layout_below="@id/direct_order"
                       android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:background="#c9c9c9">
                    
                    <TextView
                        android:id="@+id/information_header"
                        android:gravity="center"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:text="@string/product_information_header"
                        android:textColor="#000000"/>
                    <View
                        android:id="@+id/separator"
                        android:layout_below="@id/information_header"
                        android:layout_width="fill_parent"
                        android:layout_height="2dip"
                        android:background="#000000"/>
                    
                    <TextView
                        android:id="@+id/ean"
                        android:layout_below="@id/separator"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:text="@string/ean"
                        android:textColor="#000000"/>
                    
                    <View
                        android:id="@+id/small_separator1"
                        android:layout_below="@id/ean"
                        android:layout_width="fill_parent"
                        android:layout_height="2dip"
                        android:layout_marginLeft="10dip"
                        android:layout_marginRight="10dip"
                        android:background="#d7d7d7"/>
                                        
                    <TextView
                        android:id="@+id/order_number"
                        android:layout_below="@id/small_separator1"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:text="@string/order_number"
                        android:textColor="#000000"/>
                        
                    <View
                        android:id="@+id/small_separator2"
                        android:layout_below="@id/order_number"
                        android:layout_width="fill_parent"
                        android:layout_height="2dip"
                        android:layout_marginLeft="10dip"
                        android:layout_marginRight="10dip"
                        android:background="#d7d7d7"/>
                        
                    <TextView
                        android:id="@+id/manufacturer"
                        android:layout_below="@id/small_separator2"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:text="@string/manufacturer"
                        android:textColor="#000000"/>
                        
                    <View
                        android:id="@+id/small_separator3"
                        android:layout_below="@id/manufacturer"
                        android:layout_width="fill_parent"
                        android:layout_height="2dip"
                        android:layout_marginLeft="10dip"
                        android:layout_marginRight="10dip"
                        android:background="#d7d7d7"/>
                        
                    <TextView
                        android:id="@+id/product_description"
                        android:layout_below="@id/small_separator3"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:text="@string/product_description"
                        android:textColor="#000000"/>
                </RelativeLayout>    
            </RelativeLayout>
          </ScrollView>
    </RelativeLayout>
    
    Gibt es einen logischen Grund, warum ich das RelativeLayout nicht unter dem Linear Layout anordnen kann? (Änder ich das Linear in ein RelativeLayout, komme ich übrigens zum gleichen Ergebnis)
     

Diese Seite empfehlen