以下XML是針對我的視圖的測試佈局。它在左側顯示一個NavigationDrawer,在視圖頂部有一個工具欄。工具欄在左上角顯示一個標題和一個漢堡包圖標以切換NavigationDrawer。一切正常:嵌套複合視圖/包含/合併
我的XML(我刪除了所有的高度/寬度屬性,因爲它是更好的可讀性):
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:fitsSystemWindows="true">
<LinearLayout
android:orientation="vertical">
<android.support.v7.widget.Toolbar
android:id="@+id/my_awesome_toolbar"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary" />
<!-- ** MY VIEW ELEMENTS **-->
</LinearLayout>
<LinearLayout
android:id="@+id/drawer_leftpane"
android:orientation="vertical"
android:layout_gravity="left|start"
android:background="#FFFFFF"
android:fitsSystemWindows="true">
<TextView
android:text="Test string on top of list" />
<android.support.v7.widget.RecyclerView
android:id="@+id/drawer_menulist"
android:scrollbars="vertical"
android:choiceMode="singleChoice"
android:divider="@null" />
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
在部分<!-- ** MY VIEW ELEMENTS **-->
我插入了不同意見的視圖元素(這是唯一的事情誰所有視圖之間的變化)。
我有很多意見需要上述佈局。我知道includes,合併和compound views並閱讀了許多關於這些文章。但我無法爲這種特殊情況創建佈局,我想避免在整個視圖中複製粘貼整個佈局。
在我想是這樣的我所有的意見結束:
<?xml version="1.0" encoding="utf-8"?>
<MyDrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/drawer_layout"
android:fitsSystemWindows="true">
<!-- ** MY VIEW ELEMENTS **-->
</MyDrawerLayout>
是,即使可能嗎?或者有另一種方法來實現這一目標?在此先感謝
我不能刪除工具欄佈局(正如你所說),因爲那麼我不能用'drawerLayout.findViewById(R.id.toolbar)找到它;'或者我錯過了什麼? – Joehl
我想說,你應該*不*將工具欄包裝在LinearLayout中。這似乎毫無意義。我試圖說你應該找到工具欄: 工具欄工具欄=(工具欄)findViewById(R.id。my_awesome_toolbar); 然後膨脹並將您的自定義佈局添加到該工具欄中。 –
但我想在所有活動中使用相同的工具欄。並且工具欄位於LinearLayout中,否則它不會顯示在視圖之上。在這個LinearLayout裏面有其他的視圖元素,這取決於不同的活動。 – Joehl