如何制作模板xml

时间:2014-04-29 05:37:31

标签: android

我想制作XML模板以重用代码。问题是其中一个模板有几个线性布局。但是,当我运行应用程序时,它只显示一个linearLayout。 (我只能看到id:manage_services。而不是manage_view既不管理_shows)。 这是我的代码。我希望有人能解决问题。

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

2 个答案:

答案 0 :(得分:1)

将您的父LinearLayout's方向从horizontal更改为vertical

android:orientation="vertical"

答案 1 :(得分: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调用子行为布局。