1. 程式人生 > >Android一個佈局檔案巢狀另一個佈局檔案的方法

Android一個佈局檔案巢狀另一個佈局檔案的方法

文前:學安卓與JAVA算來已經有兩個月了,以前都是看著書本或者跟著老師打程式碼,真正自己去寫程式碼卻很少,今天自己嘗試著寫一個小專案時卻發現這樣和那樣的問題,甚至是一些小問題都要花掉兩三個小時去查資料解決今天被一個佈局問題搞得焦頭爛額,覺得是時候該做下筆記,讓自己長長記性了。

在寫佈局檔案時,經常會有一部分程式碼是重複的,為了提高程式碼的複用性和減少程式碼量,我們通常的做法是將相同的那一部分寫入一個layout檔案中讓其它佈局檔案去呼叫,這時我們在呼叫的佈局檔案用到<include />佈局,在該佈局里加入layout="@layout/“被引用的佈局檔名”"以我做的Demo為例子。

這是我想要做成的效果,而我中間的一些圖片控制元件用到了絕對佈局相對比較複雜於是我將那六邊形的圖片控制元件單獨拿出來寫成了一個佈局menu_icon.xml。

程式碼如下:

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >


    <ImageView
        android:id="@+id/music_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_x="115dip"
        android:layout_y="0dip"
        android:src="@drawable/music_icon_1_0" />
    <ImageView
        android:id="@+id/phone_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_x="189dip"
        android:layout_y="36dip"
        android:src="@drawable/phone_icon_2_0" />
    <ImageView
        android:id="@+id/clock_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_x="189dip"
        android:layout_y="117dip"
        android:src="@drawable/clock_icon_3_0" />
    <ImageView
        android:id="@+id/battery_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_x="115dip"
        android:layout_y="152dip"
        android:src="@drawable/batery_icon_4_0" />
    <ImageView
        android:id="@+id/camera_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_x="40dip"
        android:layout_y="117dip"
        android:src="@drawable/camera_icon_5_0" />
    <ImageView
        android:id="@+id/email_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_x="40dip"
        android:layout_y="36dip"
        android:src="@drawable/email_icon_0_0" />


</AbsoluteLayout>

讓主介面佈局main_menu.xml去引用它,程式碼如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/background" >


    <!-- 位於頂部的標題圖片 -->


    <ImageView
        android:id="@+id/title_map"
        android:layout_width="200dip"
        android:layout_height="200dip"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="5dip"
        android:src="@drawable/title" />


    <!-- 定義一個Textview在父控制元件的中間 -->


    <TextView
        android:id="@+id/center_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="記事本"
        android:layout_marginLeft="150dip"
        android:layout_marginTop="300dip"
        android:textColor="#0e1ff4"
        android:textSize="20sp" />

    <include
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="200dip"
        layout="@layout/menu_icon" />


</RelativeLayout>

相關推薦

Android一個佈局檔案一個佈局檔案方法

文前:學安卓與JAVA算來已經有兩個月了,以前都是看著書本或者跟著老師打程式碼,真正自己去寫程式碼卻很少,今天自己嘗試著寫一個小專案時卻發現這樣和那樣的問題,甚至是一些小問題都要花掉兩三個小時去查資料解決,今天被一個佈局問題搞得焦頭爛額,覺得是時候該做下筆記,讓自己長長記性

[Swift通天遁地]二、表格表單-(3)在表格中一個表格並使Cell的高度自適應

本文將演示如何在表格中巢狀另一個表格並使Cell的高度自適應,建立更加強大的佈局效果。 在專案資料夾【DemoApp】上點選滑鼠右鍵,彈出右鍵選單。 【New File】->【Cocoa Touch Class】->【Next】-> 【Class】:CustomizeUITableVi

fragment裡面一個fragment

最近換了工作,說白了,就是去填坑啦,首頁改版,原來是viewpager+標籤切換滑動實現,現在改成popupwindow+recyclerview實現,為了減少工時,我在原來的基礎上覆用了fragment,即需要實現在一個fragment裡面嵌入另一個fragment。Fra

關於在一個頁面的div一個頁面導致下拉框失效的問題

做後臺管理頁面,在一個主頁面中巢狀另一個頁面,通過主頁面點選不同選單,在頁面另一部分顯示不同的子頁面,知道有兩種方法: 1.使用<iframe>視窗; 2.在主頁面的div裡面巢狀一個子頁面,$("#divId").load("XXX.jsp"). 在用第二個方

Framelayout佈局多個佈局layout的顯示

          2015已經來了快半月了,始終還是沒感受到一點新年的氣氛,但是終歸是還沒過年這對於我們來說好像也確實正常。           目前來說自我感覺還是沉浸在年末的那種氣氛中,那就暫且年末吧。年末因為部分原因再次需要接觸Launcher的程式碼了,記得14年

網站開發進階(十一)如何將一個jsp頁面一個頁面中

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

網站開發進階 十 如何將一個html頁面一個頁面中

如何將一個html頁面巢狀在另一個頁面中 1.IFrame引入  <IFRAME NAME="content_frame" width=100% height=30 marginwidth=0 marginheight=0&nbs

網站開發進階 十一 如何將一個jsp頁面一個頁面中

如何將一個jsp頁面巢狀在另一個頁面中 這個在做網頁中常要用到,有些通用的內容可集中放在一個頁面檔案中,其它要用到這些內容的頁面只需要包含(引用)這個通用檔案即可。這樣便於維護,如果有很多網頁,當通用內容需要修改時,只改一個檔案就可以了,不需要每個檔案單獨修改。 最典型的應用比如頁尾的版權資訊等

Android Studio】將一個Module直接複製到一個Project中需要改動哪些檔案

一個奇怪的需求,硬拷貝 根目錄/settings.gradle include ':app' include ':ThirdPartyDemo' // 按照樣式新增本行  這樣在【Run/Debug Configurations】中就會有該Module

如何將一個HTML頁面一個頁面中

這個在做網頁中常要用到,有些通用的內容可集中放在一個頁面檔案中,其它要用到這些內容的頁面只需要包含(引用)這個通用檔案即可。這樣便於維護,如果有很多網頁,當通用內容需要修改時,只改一個檔案就可以了,不需要每個檔案單獨修改。最典型的應用比如頁尾的版權資訊等內容可以放在一個叫做footer.html檔案

網站開發進階(十)如何將一個html頁面一個頁面中

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興! 如何將一個html頁面巢狀在另一個頁面中 1.IFrame引入  <IFRAME NAME="content_frame" width=100% height=30 marginwi

Python將某資料夾及其子資料夾下某種格式的檔案移動到一個指定的檔案

import shutil,os new_path='/root/python_test/data/gp_fz' for derName, subfolders, filenames in os.walk('/root/python_test/data/gp'): print(derName

如何在一個js檔案中引入一個js檔案

比如現在我們有兩個js檔案,1.js  和  2.js 我們現在要做的是將2.js 檔案中的程式碼引入到 1.js 檔案中 在1.js檔案中寫入如下程式碼 var script = document.createElement("script"); var hea

python檔案中呼叫一個python檔案的類

如果是在同一個 module中(也就是同一個py 檔案裡),直接用就可以 如果在不同的module裡,例如 a.py裡有 class A: b.py 裡有 class B: 如果你要在class B裡用class A 需要在 b.py的開頭寫上 from a import A  

這是用InputStream,OutputStream做的兩個TXT檔案合併在一個檔案裡面

這是用InputStream,OutputStream做的兩個TXT檔案合併在另一個檔案裡面 a.txt b.txt合併到c.txt import java.io.File; import java.io.FileInputStream; import java.io.FileO

“操作無法完成因為其中的資料夾或檔案已在一個程式中開啟”解決辦法

在windows系統中,我們經常會遇到這樣一個問題:刪除某一個檔案或者資料夾,被提醒:操作無法完成,因為其中的資料夾或檔案已在另一個程式中開啟。 這個時候我們一般會先檢查是否真的有程式或者檔案打開了沒有關閉,但是我們在桌面或者工作管理員中找不到該程式。這個問題困擾了我很久,認為下次重啟

ubuntu下將一個檔案複製到一個資料夾複製出錯,原因是使用者對資料夾的許可權不夠

情況:在ubuntu系統下,想將一個檔案複製到/usr/local/etc/mini-ndn資料夾下,但是複製出錯,原因是使用者對這個資料夾的許可權不夠. 解決方法:提高使用者的許可權,使用以下程式碼 sudo chmod 777 /usr/local/etc/mini-ndn

Android BLE訂閱ios的ANCS一個方式

背景 受到 https://www.jianshu.com/p/88858b8e5e67 的啟發,我明確了要發現ANCS服務需要在配對並繫結藍芽後。此文中的辦法是在 ios側使用 lightblue 模擬一個外設Heart Rate,讓Android 搜尋連線它

[golang把檔案複製到一個目錄]

//本程式 主要功能是把A資料夾下的檔案與B目錄下檔案對比,如果找到就覆蓋到B相應的目錄下。 // 用法: merge A目錄 B目錄 // merge.go package main import ( "flag" "fm

Android應用的LinearLayout中RelativeLayout的佈局用法

想將Button和ListView分別放在螢幕的一左一右。 單純使用android:gravity和android:layout_gravity不成功。 於是涉及到RelativeLayout。 關鍵為:android:layout_alignParentRight="tr