我想制作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);
}
答案 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调用子行为布局。