2014-04-29 6 views
0

Je souhaite créer un modèle XML pour réutiliser le code. Le problème est que l'un des modèles a plusieurs configurations linéaires. Cependant, quand je cours l'application, elle montre seulement un linearLayout. (Je ne peux voir que id: manage_services, ni manage_view, ni manage_shows). Voici mon code. J'espère que n'importe qui peut comprendre le problème.Comment créer un modèle xml

drawable_manage.xml

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



    <LinearLayout 
     android:id="@+id/manage_services" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" > 

     <TextView 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="10dp" 
      android:drawableLeft="@drawable/menu_settings" 
      android:text="@string/title_manage_services" 
      android:textColor="#ffffff" 
      android:textSize="20sp" /> 
    </LinearLayout> 

    <View 
     android:id="@+id/manage_view" 
     android:layout_width="fill_parent" 
     android:layout_height="1dp" 
     android:background="@color/menu_divider" /> 

    <LinearLayout 
     android:id="@+id/manage_shows" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:padding="@dimen/slide_menu_header" > 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="10dp" 
      android:drawableLeft="@drawable/menu_settings" 
      android:text="@string/title_manage_shows" 
      android:textColor="#ffffff" 
      android:textSize="20sp" /> 
    </LinearLayout> 

</LinearLayout> 

MainMenuActivity.java

private void addPanels(){ 
    LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    android.support.v4.widget.DrawerLayout parent = (android.support.v4.widget.DrawerLayout) inflater.inflate(R.layout.activity_main_menu,null); 

    View layout_manage = inflater.inflate(R.layout.drawable_layout_manage, null); 
    View layout_names = inflater.inflate(R.layout.drawable_layout_names, null); 
    View layout_emails = inflater.inflate(R.layout.drawable_layout_email, null); 
    LinearLayout leftLinearLayout = (LinearLayout)parent.findViewById(R.id.left_drawer); 



    leftLinearLayout.addView(layout_names); 
    leftLinearLayout.addView(layout_emails); 
    leftLinearLayout.addView(layout_manage); 
    setContentView(parent); 
} 
+1

Vous utilisez la disposition horizontale en tant que parent, et pourtant vous définissez tous les enfants comme ayant 'android: layout_width =" fill_parent "', les premiers enfants occupent donc tout l'espace de l'écran. Essayez de définir la largeur sur 'wrap_content'. – Tau

+0

Pouvez-vous donner une capture d'écran à quoi vous voulez que votre modèle ressemble? –

Répondre

1

Changez votre orientation mère LinearLayout'shorizontal-vertical.

android:orientation="vertical" 
0

Êtes-vous désireux de réutiliser votre linearlayouts de drawable_manage.xml dans ces (à savoir @ + id/manage_services, @ + id/manage_shows) ou vous avez des fichiers de mise en page séparés? Essayez les autres suggestions et changez l'orientation, et assurez-vous que vous essayez de gonfler la disposition correcte. Assurez-vous de gonfler drawable_manage à l'emplacement correct et d'appeler les linéarisations enfant par les ID corrects.