日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Pro Android学习笔记(二九):用户界面和控制(17):include和merge

發(fā)布時間:2024/6/18 Android 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Pro Android学习笔记(二九):用户界面和控制(17):include和merge 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

xml控件代碼重用:include

如果我們定義一個控件,需要在不同的layout中重復(fù)使用,或者在同一個layout中重復(fù)使用,可以采用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" />

在布局中,我們將重復(fù)使用到這段代碼,如下處理:

<?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>

我們不僅可以引用重復(fù)代碼,還可以對屬性進(jìn)行增加和修改。但是增加和修改受到某些限制,有時并不起效果,這點(diǎn)必須要注意。

如果代碼中含有多個控件,根據(jù)XML的格式,我們不可以平行地擺放多個控件,很簡單,將它們放置在layout中就可以,例如:

<?xml version="1.0" encoding="utf-8"?>?
<LinearLayout …… >?
??? <View1 …… />?
??? <View2 …… />?
?????? …….?
</LinearLayout>

xml控件代碼重用:merge

如果我們有多個控件,將他們放置在某種布局的的layout中。那么回出現(xiàn)layout的嵌套。這種嵌套有時是沒有必要的,例如將一個LinearLayout放置在LinearLayout,這會降低代碼的效率。有時我們并不希望在重用代碼中就設(shè)定布局格式,這時這種方式就不合適。對于這多種控件,重復(fù)代碼的xml文件,可以使用merge,如下:

<?xml version="1.0" encoding="utf-8"?>?
<merge xmlns:android="http://schemas.android.com/apk/res/android">?
??? <View1 …… />??
??? <View2 …… />?
???? ……?
</merge>

在進(jìn)行代碼合并時,系統(tǒng)會去掉merge。

橫屏和豎屏:landsacpe & portrait

為了實(shí)現(xiàn)美觀,橫屏和豎屏可能會采用不同的排版方式,可在layout-land/,layout-port/中進(jìn)行設(shè)置,而layout/則是缺省的。即使我們設(shè)置了layout-land/和layout-port/,我們?nèi)詰?yīng)設(shè)置缺省的layout/,因?yàn)檫€有一種很少使用的layout-square,即使我們同時也設(shè)置了這種少有的方形,仍應(yīng)當(dāng)將缺省的進(jìn)行設(shè)置。因?yàn)槲覀儾磺宄唧w運(yùn)行應(yīng)用的android版本,有沒有新的類型出現(xiàn),設(shè)置缺省布局是最保險的方式,此外也可以避免某種情況,無法匹配資源變更,必須采用缺省。具體見Pro Android學(xué)習(xí)筆記(四):了解Android資源(下)的最后部分“資源和配置的變更”。

有些情況,我們需要強(qiáng)制橫屏或者豎屏,而不是根據(jù)重力感應(yīng)器或者陀螺儀這里傳感器來監(jiān)測手機(jī)的實(shí)際擺放情況。例如圖片播放或者視頻播放。即時我們在XML中設(shè)置為android:orientation="vertical",仍可以在代碼中強(qiáng)制設(shè)置方向:

protected void onCreate(Bundle savedInstanceState) {?
????super.onCreate(savedInstanceState);?
????setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
??? ... ...?
}?

下面是例子,左圖是普通情況,右圖在代碼中強(qiáng)制設(shè)置方向?yàn)闄M屏。

相關(guān)鏈接:?我的Android開發(fā)相關(guān)文章

轉(zhuǎn)載于:https://www.cnblogs.com/mzsoft/p/4427252.html

總結(jié)

以上是生活随笔為你收集整理的Pro Android学习笔记(二九):用户界面和控制(17):include和merge的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。