【转】 Pro Android学习笔记(二九):用户界面和控制(17):include和merge
目錄(?)[-]
xml控件代碼重用:include
如果我們定義一個控件,需要在不同的layout中重復使用,或者在同一個layout中重復使用,可以采用include的方式。例如定義my_button.xml如下
<?xml version="1.0" encoding="utf-8"?>?
<Button xmlns:android="http://schemas.android.com/apk/res/android"?
??? android:textColor="#FF0000"?
??? android:layout_width="match_parent"?
??? android:layout_height="wrap_content" />
在布局中,我們將重復使用到這段代碼,如下處理:
<?xml version="1.0" encoding="utf-8"?>?
<LinearLayout … …" >?
??? <include?android:id="@+id/include_one"?
????????layout="@layout/my_button"?/>??<!-- 我們可以增加某些屬性,例如android:id -->
??? <include? android:id="@+id/include_two"????
??????? layout="@layout/my_button"?
??????? android:text="Happy"? />??<!-- 測試,不是所有的屬性增加都是有效,例如android:text,需要通過id獲取在代碼中重置 -->
</LinearLayout>
我們不僅可以引用重復代碼,還可以對屬性進行增加和修改。但是增加和修改受到某些限制,有時并不起效果,這點必須要注意。
如果代碼中含有多個控件,根據XML的格式,我們不可以平行地擺放多個控件,很簡單,將它們放置在layout中就可以,例如:
<?xml version="1.0" encoding="utf-8"?>?
<LinearLayout …… >?
??? <View1 …… />?
??? <View2 …… />?
?????? …….?
</LinearLayout>
xml控件代碼重用:merge
如果我們有多個控件,將他們放置在某種布局的的layout中。那么回出現layout的嵌套。這種嵌套有時是沒有必要的,例如將一個LinearLayout放置在LinearLayout,這會降低代碼的效率。有時我們并不希望在重用代碼中就設定布局格式,這時這種方式就不合適。對于這多種控件,重復代碼的xml文件,可以使用merge,如下:
<?xml version="1.0" encoding="utf-8"?>?
<merge xmlns:android="http://schemas.android.com/apk/res/android">?
??? <View1 …… />??
??? <View2 …… />?
???? ……?
</merge>
在進行代碼合并時,系統會去掉merge。
橫屏和豎屏:landsacpe & portrait
為了實現美觀,橫屏和豎屏可能會采用不同的排版方式,可在layout-land/,layout-port/中進行設置,而layout/則是缺省的。即使我們設置了layout-land/和layout-port/,我們仍應設置缺省的layout/,因為還有一種很少使用的layout-square,即使我們同時也設置了這種少有的方形,仍應當將缺省的進行設置。因為我們不清楚具體運行應用的android版本,有沒有新的類型出現,設置缺省布局是最保險的方式,此外也可以避免某種情況,無法匹配資源變更,必須采用缺省。具體見Pro Android學習筆記(四):了解Android資源(下)的最后部分“資源和配置的變更”。
有些情況,我們需要強制橫屏或者豎屏,而不是根據重力感應器或者陀螺儀這里傳感器來監測手機的實際擺放情況。例如圖片播放或者視頻播放。即時我們在XML中設置為android:orientation="vertical",仍可以在代碼中強制設置方向:
protected void onCreate(Bundle savedInstanceState) {?
????super.onCreate(savedInstanceState);?
????setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
??? ... ...?
}?
下面是例子,左圖是普通情況,右圖在代碼中強制設置方向為橫屏。
相關鏈接:?我的Android開發相關文章
轉載于:https://www.cnblogs.com/blongfree/p/5047952.html
總結
以上是生活随笔為你收集整理的【转】 Pro Android学习笔记(二九):用户界面和控制(17):include和merge的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 全国计算机等级考试题库二级C操作题100
- 下一篇: 计算机打印怎样添加PDF格式,电脑添加P