Android在layout xml中使用include完成靜態載入

来源:http://www.cnblogs.com/Renyi-Fan/archive/2017/08/19/7397229.html
-Advertisement-
Play Games

Android在layout xml中使用include完成靜態載入 include靜態載入:不僅可以載入佈局,還可以載入控制項(控制項標簽名要在最外層)include標簽中有個layout屬性就是專門用來載入的。 在Android的layout樣式定義中,可以使用xml文件方便的實現,有時候為了模塊的 ...


 Android在layout xml中使用include完成靜態載入

include靜態載入:
不僅可以載入佈局,還可以載入控制項(控制項標簽名要在最外層)
include標簽中有個layout屬性就是專門用來載入的。

 

Android的layout樣式定義中,可以使用xml文件方便的實現,有時候為了模塊的復用,使用include標簽可以達到此目的。例如:

<include layout="@layout/otherlayout"></div> 

android開發的官方網站的說明在這裡。 
其中,有提到:

Similarly, you can override all the layout parameters. This means that any android:layout_* attribute can be used with the <include> tag.

意思是任何android:layout_*屬性都可以應用在標簽中。

如果使用如下代碼:

<Relativelayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <Textview
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/somestring"
        android:id="@+id/top" />

    <include layout="@layout/otherlayout"
        android:layout_below="@id/top" />
</Relativelayout > 

發現include的otherlayout,並沒有在如我們預期的在id/top這個TextView下麵,而是忽略了android:layout_below屬性。經過Google發現,很多人遇到類似的問題。

有解決方法是在include的外面再包一層LinearLayout,如下:

<Linearlayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/top" >

    <include layout="@layout/otherlayout">
</Linearlayout > 

在Statckoverflow上找到了更好的解決方法: 解答道:必須同時重載layoutwidth和layoutheight屬性,其他的layout_*屬性才會起作用,否這都會被忽略掉。上面的例子應該寫成這樣:

<include layout="@layout/otherlayout">
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:layout_below="@id/top" />

另外,關於xml的復用,還可以使用merge標簽,merge標簽主要是用來優化顯示的,減少View樹的層級,可以參考這裡:https://developer.android.com/resources/articles/layout-tricks-merge.html, 翻譯版在這裡:http://apps.hi.baidu.com/share/detail/20871363

  原文:http://www.race604.com/using-include-in-layout/
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 歡迎各位同學加入: React-Native群:397885169 大前端群:544587175 大神超多,熱情無私幫助解決各種問題。 最近項目需求需要用到輪播圖,所以寫兩Demo練練手,不過效果不太理想,希望大牛予以指正。 不多說,先上圖。 這種輪播很常見,但是一個問題是,總感覺有點卡的感覺,最氣 ...
  • 說明: ^.*[\u4e00-\u9fa5].*$ 是否包含中文^[\u4E00-\u9FA5]+$ 是否全中文 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range repla ...
  • 轉載請標明出處:http://blog.csdn.net/zhaoyanjun6/article/details/76165252 本文出自 "【趙彥軍的博客】" 一:什麼是路由? 說簡單點就是映射頁面跳轉關係的,當然它也包含跳轉相關的一切功能。 二:為什麼需要路由 Android系統已經給我們提供 ...
  • 轉載請標明出處:http://blog.csdn.net/zhaoyanjun6/article/details/75578109 本文出自 "【趙彥軍的博客】" 起因 最近在項目中遇到需要在界面上顯示一個本地的 GIF 圖。按照慣例我直接用了 Glide 框架來實現。 Glide 地址: http ...
  • 在瞭解`Masonry`框架之前,有必要先瞭解一下**自動佈局**的概念。在`iOS6`之前,`UI`佈局的方式是通過`frame`屬性和`Autoresizing`來完成的,而在`iOS6`之後,蘋果公司推出了`AutoLayout`的佈局方式,它是一種基於約束性的、描述性的佈局系統,尤其是蘋果的... ...
  • 在 Kotlin1.1.4版本 發佈後,原作者依據 Kotlin 新版本的一系列新特性和讀者的提問對幾個月前寫文章進行更新。這篇是重寫的KAD04。在這篇重寫的文章中,他涵蓋了所有KAE(1.1.4版本前後)可以完成的事情。現在你會喜歡在任何類(不只是activity, fragment 或 vie... ...
  • 1.應用 Assets.xcassets :用來存放圖像資源文件 好處: 自動管理圖片,如@1x,@2x圖片,使用的時候使用Asset 名字即可 管理應用的Icon和Default圖片,這個挺方便的,可以完全拋開以前規範命名如Icon.png,[email protected],Xcode會自動識別尺寸然後匹配 ...
  • Android在layout xml中使用ViewStub完成動態載入 一、Layout XML文件常見的兩種模塊載入方式 1、靜態載入:被載入的模塊和其它模塊載入的時間一樣。 <include layout="@layout/otherLayout"/> 2、動態載入:需要被載入的模塊初始時並沒有 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...