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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

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

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

目錄(?)[-]

  • xml控件代碼重用include
  • xml控件代碼重用merge
  • 橫屏和豎屏landsacpe portrait
  • 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的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。