亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Android開發(fā)指南-用戶界面-通用布局對象

系統(tǒng) 1809 0

通用布局對象 Common Layout Objects

本章描述了可用于你的應(yīng)用程序的一些更為通用的布局對象類型。像所有的布局一樣,它們是 ViewGroup . 的子類。

也可以參見 Hello Views 教程,有更多關(guān)于使用 Android 視圖布局的指南。

框架布局 FrameLayout

框架布局 FrameLayout 是最簡單的布局對象類型。它基本上是一個(gè)屏幕上的空白空間,你可以稍后填充一個(gè)對象 - 比如,一個(gè)切入切出的圖片。所有框架布局的子元素被釘在屏幕左上角;你不能為子視圖指定一個(gè)不一樣的位置。后續(xù)的子視圖只是簡單在之前的視圖上方繪制,部分或完全的掩蓋它們(除非這個(gè)新的對象是透明的)。

線性布局 LinearLayout

線性布局 LinearLayout 在單一方向上對齊所有的子視圖 - 豎向或者橫向,這依賴于你怎么定義方向 orientation 屬性。所有子視圖依次堆積,所以一個(gè)豎向列表每行只有一個(gè)子視圖,不管它們有多寬,而一個(gè)橫向列表將只有一行高(最高子視圖的高度,加上填充)。一個(gè)線性布局 LinearLayout 會(huì)考慮子視圖之間的邊緣空白 margin s 以及每個(gè)子視圖的引力屬性(靠右,居中,或者靠左)。

線性布局 LinearLayout 也支持給每個(gè)單獨(dú)的子視圖分配一個(gè)權(quán)重。這個(gè)屬性分配一個(gè)“重要性”數(shù)值給一個(gè)視圖,并允許它擴(kuò)展來填充父視圖的任何剩余空間。子視圖可以指定一個(gè)整型權(quán)重值,然后任何這個(gè)視圖組中的剩余空間將按照子視圖聲明的比重來分配給它們。缺省權(quán)重是 0 。比如,如果有三個(gè)文本框,其中兩個(gè)聲明權(quán)重為 1 ,而另一個(gè)未給定數(shù)值( 0 ),這第三個(gè)沒有權(quán)重的文本框?qū)⒉粫?huì)增長而只是占據(jù)其內(nèi)容所要求的空間。其它兩個(gè)將均勻分配剩余的空間。如果把第三個(gè)控件權(quán)重改為 2 ,那意味著它被聲明為比其它兩個(gè)“更為重要”,因此它將占據(jù)整個(gè)空間的一半,而前面兩個(gè)均分剩下的空間。

提示 :要在屏幕上創(chuàng)建一個(gè)均衡尺寸的布局,可創(chuàng)建一個(gè)容器視圖組對象,其 layout_width layout_height 屬性設(shè)置為 fill_parent ; 把子視圖的 height width 賦值為 0 然后根據(jù)比例為每個(gè)子視圖分配相關(guān)的 weight 值。

下面的兩個(gè)窗體呈現(xiàn)了一個(gè)帶有若干元素的線性布局 LinearLayout :一個(gè)按鈕,一些標(biāo)簽和文本框。這些文本框把它們的寬度設(shè)置為 填充父視圖( fill_parent ;其他元素設(shè)置為 包含內(nèi)容( wrap_content 。引力屬性為缺省的靠左對齊。這兩個(gè)窗體的區(qū)別是左邊的那個(gè)沒有設(shè)置權(quán)重,而右邊那個(gè)窗體中,評(píng)論文本框權(quán)重被設(shè)置為 1 。如果名字也設(shè)置成 1 ,那么名字和評(píng)論將一樣高。

android linear layout

在一個(gè)水平方向的線性布局 LinearLayout 中, items 按照文本底線位置來對齊(第一個(gè)元素的第一行 - 最上邊或最左邊 - 被當(dāng)作參考行)。這樣用戶在窗體中瀏覽元素時(shí)并不需要上下跳動(dòng)來閱讀相鄰元素中的文本。這個(gè)特性可以通過在 XML 布局中設(shè)置 android:baselineAligned="false" 來關(guān)閉。

要查看其他示例代碼,參見 Hello LinearLayout 教程。

表布局 TableLayout

表布局 TableLayout 把它的子視圖定位到行和列中。表布局容器不顯示行,列和單元的邊界線。表的列和最多行單元數(shù)一樣多。一個(gè)表可以有空單元,但是單元不能像 HTML 里面那樣跨列。

TableRow 對象是一個(gè) TableLayout 的子視圖(每個(gè) TableRow 定義了表中的一個(gè)單獨(dú)行)。每行有 0 或多個(gè)單元,可用任何其他視圖定義。因此,行單元可能由各個(gè)視圖對象組成,如 ImageView TextView 對象。一個(gè)單元也可以是一個(gè) ViewGroup 對象(比如,你可以嵌入另一個(gè)表布局作為一個(gè)單元)。

下面的示例布局有兩行,各有兩個(gè)單元。旁邊的截圖顯示了效果,單元邊界被顯示為虛線(為了增加視覺效果)。

android table layout

<?xml version="1.0" encoding="utf-8"?>

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:stretchColumns="1">

<TableRow>

<TextView

android:text="@string/table_layout_4_open"

android:padding="3dip" />

<TextView

android:text="@string/table_layout_4_open_shortcut"

android:gravity="right"

android:padding="3dip" />

</TableRow>

<TableRow>

<TextView

android:text="@string/table_layout_4_save"

android:padding="3dip" />

<TextView

android:text="@string/table_layout_4_save_shortcut"

android:gravity="right"

android:padding="3dip" />

</TableRow>

</TableLayout>

列可以被隱藏,帶有延伸標(biāo)記并填充可用屏幕空間,或者可以被標(biāo)記為可收縮來強(qiáng)制這個(gè)列縮小直到表適合屏幕。參見 TableLayout reference 文檔獲取更多信息。

示范代碼,參見 Hello TableLayout 教程。

相對布局 RelativeLayout

相對布局 RelativeLayout 允許子視圖指定它們和父視圖或彼此之間的相對位置(通過 ID 指定)。因此你可以按正確的順序?qū)R兩個(gè)元素,或者讓一個(gè)視圖在另外一個(gè)下面,居于屏幕中間,左邊的中間,等等。元素通過給定順序來繪制,因此如果這第一個(gè)元素在屏幕中間,其他以它對齊的元素都會(huì)對齊到屏幕中間。同樣,因?yàn)檫@個(gè)順序,如果使用 XML 來指定這個(gè)布局,你將引用的元素(為了定位其它視圖對象)必須被列在 XML 文件中,在你通過引用 ID 從其他視圖中引用它之前。

這個(gè)下面的例子顯示了一個(gè) XML 文件及其界面效果。注意,在屬性中引用相對元素(比如, layout_toLeft )時(shí)使用了一個(gè)相對資源語法來引用 ID @id/id )。

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:background="@drawable/blue"

android:padding="10px" >

<TextView android:id="@+id/label"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="Type here:" />

<EditText android:id="@+id/entry"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:background="@android:drawable/editbox_background"

android:layout_below="@id/label" />

<Button android:id="@+id/ok"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_below="@id/entry"

android:layout_alignParentRight="true"

android:layout_marginLeft="10px"

android:text="OK" />

<Button android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_toLeftOf="@id/ok"

android:layout_alignTop="@id/ok"

android:text="Cancel" />

</RelativeLayout>

其中一些特性直接由元素支持,另外一些由它的 LayoutParams 成員變量支持(為所有這個(gè)屏幕中的元素子類化 RelativeLayout ,因?yàn)樗性囟际? RelativeLayout 父對象的子元素)。已定義的相對布局 RelativeLayout 參數(shù)是: width , height , below , alignTop , toLeft , padding[Bottom|Left|Right|Top] ,以及 margin[Bottom|Left|Right|Top] 。注意其中一些參數(shù)明確支持相對布局位置 - 它們的數(shù)值必須是你的相對位置元素的 ID 。比如,為一個(gè) TextView 分配參數(shù) toLeft="my_button" 將把 TextView 放在視圖 ID my_button 的左邊(這必須寫在 XML 中的 TextView 前面)。

示范代碼,參見 Hello RelativeLayout 教程。

關(guān)于重要視圖組的總結(jié) Summary of Important View Groups

下面這些對象都用來容納用戶界面元素。一些提供了自己的可見界面格式,而其他一些是不可見的結(jié)構(gòu),僅僅用來管理子視圖的布局。

描述

框架布局 FrameLayout

作為一個(gè)視圖框架來顯示一個(gè)單獨(dú)的對象。

畫廊 Gallery

一個(gè)水平滾動(dòng)的圖像顯示。

網(wǎng)格視圖 GridView

顯示一個(gè)滾動(dòng)網(wǎng)格 m n 行。

線性布局 LinearLayout

一個(gè)把子視圖組織進(jìn)單個(gè)水平或豎向行的布局。它創(chuàng)建一個(gè)滾動(dòng)條如果窗口長度超過屏幕長度的話。

列表視圖 ListView

顯示一個(gè)滾動(dòng)單列列表。

相對布局 RelativeLayout

使你可以指定子對象之間的相對位置(如, A B 的左邊)或者相對于父對象的位置(如,與父視圖頂部對齊)

滾動(dòng)視圖 ScrollView

一個(gè)豎向的滾動(dòng)元素列。

微調(diào)器 Spinner

從一組數(shù)據(jù)中每次顯示一個(gè)單獨(dú)的項(xiàng),在一個(gè)單行的文本框里。很像可以橫向或豎向滾動(dòng)的單行列表框。(譯注:這個(gè)并不是 windows 平臺(tái)通常理解的那個(gè)用來上下調(diào)整數(shù)值的小控件 Spin Control ,雖然名字很相近)

平面視圖 SurfaceView

提供一個(gè)專門的繪畫平面的直接訪問。它可以含有子視圖層疊在這個(gè)平面上,但通常是為了給需要直接畫像素的應(yīng)用程序使用,而不是直接使用部件。

標(biāo)簽欄 TabHost

提供一個(gè)標(biāo)簽選擇列表,監(jiān)控用戶點(diǎn)擊動(dòng)作并使得應(yīng)用程序在一個(gè)標(biāo)簽被點(diǎn)擊時(shí)改變屏幕顯示。

表布局 TableLayout

一個(gè)表布局含有任意數(shù)量的行和列,每個(gè)單元包含你選擇的部件。行的尺寸會(huì)自動(dòng)調(diào)整來適應(yīng)最大的列。單元邊界不可見。

翻轉(zhuǎn)視圖 ViewFlipper

一個(gè)一次只顯示一項(xiàng)的列表,在一個(gè)單行文本框里。它可以被設(shè)置成定期切換 items ,就像幻燈片那樣。

切換視圖 ViewSwitcher

和翻轉(zhuǎn)視圖一樣。

Android開發(fā)指南-用戶界面-通用布局對象


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 最新日韩中文字幕 | 国产美女mm131爽爽爽免费 | 成人网在线观看 | 操免费视频 | 精品日产一区二区三区手机 | 日韩精品成人 | 国产第一页精品 | 在线播放heyzo北条麻妃 | 99国产精品欧美久久久久久影院 | 涩涩色视频在线播放 | 亚洲色婷婷综合开心网 | 国产精品a在线观看香蕉 | 人与拘一级a毛片 | 日本综合在线观看 | 日韩欧国产精品一区综合无码 | 不卡的| 久久香蕉综合精品国产 | 久久精品在线播放 | 国产精品久久久久激情影院 | 色姑娘桃花网 | 久久国产精品久久精 | 久久天天躁狠狠躁夜夜躁 | 国产uv1区二区三区 国产va | 国产亚洲精品激情一区二区三区 | 好看的中文字幕在线 | 在线观看a视频 | 最近中文日本字幕免费完整 | 在线免费观看一区二区三区 | 天天干夜啪 | 日本高清视频一区二区 | 亚洲 在线播放 | 在线日韩中文字幕 | 在线欧美69v免费观看视频 | 全黄冷激性性视频 | 国产99在线播放免费 | 99久久中文字幕伊人情人 | 久久看片 | 天天插天天操 | 九九国产在线观看 | 5151四虎永久在线精品免费 | 日日夜夜国产 |