2014-04-29 62 views
0

我想製作XML模板以重用代碼。問題在於其中一個模板有幾個線性佈局。但是,當我運行該應用程序時,它只顯示一個linearLayout。 (我只能看到id:manage_services。而不是manage_view既沒有manage_shows)。 這是我的代碼。我希望任何人都能弄清楚這個問題。如何製作模板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

你正在使用水平佈局作爲父對象,但你定義每個孩子都有'android:layout_width =「fill_parent」',所以第一個孩子佔據了屏幕上的所有空間。嘗試將寬度設置爲'wrap_content'。 – Tau

+0

你可以給你一個屏幕截圖,你希望你的模板應該看起來像嗎? –

回答

1

更改您的家長LinearLayout's方向從horizontalvertical

android:orientation="vertical" 
0

你想重用你drawable_manage.xml linearlayouts在這些(即@ + ID/manage_services,@ + ID/manage_shows),或者你有不同的佈局文件?

 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); 

請嘗試按其他人的建議並更改方向,並確保您試圖膨脹正確的佈局。確保你在正確的位置上繪製drawable_manage並用正確的ID調用子layoutlayouts。