我在我的xml
(例如Button
)中重複了很多控制。是否有可能在xml
中寫入Button
一次,然後將其導入我需要的所有佈局中?將xml導入另一個xml
回答
您可以使用
<include layout="@layout/commonlayout" android:id="@+id/id" />
commonlayout.xml
應res/layout
定義,您可以添加重複的部分。
工程。非常感謝 – Blackbelt 2011-02-02 14:36:30
簡短但很好的答案。 – 2016-10-05 08:47:58
As Labeeb P正確地說,它的工作原理。 只是想補充一點,你也可以覆蓋參數太多:
<include
layout="@layout/commonlayout"
android:id="@+id/id"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginLeft="2sp"
android:layout_marginRight="2sp"
/>
除了這些偉大的答案,你也可避免代碼重複使用<merge>
標籤,就像這樣:
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/add"/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/delete"/>
</merge>
的<merge>
當您將其包含到其他xml中時,它會被剝離。這可能有助於一次包括多個單獨的Button
。請參閱official documentation。
您可以使用默認include
XML標籤包含一個外部佈局:
<include layout="@layout/somelayout" />
這種佈局應該有一個外ViewGroup
封裝的內容或merge
標籤,以避免使用不必要的佈局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/hello_world" />
</LinearLayout>
<!-- OR -->
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<TextView android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/hello_world" />
</merge>
另外,如果你需要一個更好的辦法,包括佈局就像一個容器(自定義ViewGroup
)的作品,你可以使用這個custom ViewGroup。請注意,這不會將XML導入另一個XML文件,它將從外部佈局中擴充內容並將其替換到視圖中。它類似於ViewStub
,就像一個「ViewGroupStub」。
此lib中充當如果ViewStub
可以用作以下(!注意這個例子不工作ViewStub
不是ViewGroup
子!):
<ViewStub layout="@layout/somecontainerlayout"
inflate_inside="@+id/somecontainerid">
<TextView android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/hello_world" />
</ViewStub>
- 1. 我們可以將MyBatis XML文件導入另一個MyBatis XML文件嗎?
- 2. 如何使用XSLT將XML插入另一個XML文件?
- 3. 使用JAXB將XML文檔嵌入到另一個XML中
- 4. 使用XSLT將XML重組爲XML到另一個XML
- 5. 將XML數組從一個XML對象複製到另一個xml對象
- 6. 您是否可以將節點從一個XML文檔複製/導入到另一個XML文檔?
- 7. 用xmlstarlet將XML從一個文件插入另一個文件?
- 8. Scala將XML導入地圖
- 9. 將KVM XML導入到Qemu
- 10. 將XML導入到Oracle
- 11. 將XML導入到SQL
- 12. XML IDREF另一個XML文檔?
- 13. Java - 從另一個XML + XSD生成XML
- 14. 將XML嵌入XML
- 15. 從另一個模塊導入XML beans文件?
- 16. 使用XPath解析另一個xml中嵌入的xml Spring
- 17. 使用PugiXML提取嵌入在另一個XML中的XML
- 18. 結合輸入XML生成另一個XML輸出
- 19. 導入XML(CDATA)
- 20. 導入多個xml文件
- 21. 使用XSLT(編號轉換)將XML轉換爲另一個XML
- 22. 如何將XML文件附加到另一個XML文件
- 23. XSLT:將XML超鏈接添加到另一個XML值
- 24. 如何使用xslt將XML轉換爲另一個XML文件
- 25. 使用ruby/nokogiri將xml轉換爲另一個xml
- 26. 如何將XML文件包含在另一個XML中
- 27. 使用jquery將xml節點追加到另一個xml
- 28. 將XML中的特定值加載到另一個XML中
- 29. 使用xslt將xml結構轉換爲另一個xml結構
- 30. 使用XSLT將XML文件轉換爲另一個XML文件
我面對這個問題時,我是打算做出像iOS導航欄的頂級欄。 – 2016-10-05 08:49:48