在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Android/ 建立簡(jiǎn)單的用戶(hù)界面
檢測(cè)常用的手勢(shì)
優(yōu)化layout的層級(jí)
用戶(hù)輸入
管理應(yīng)用的內(nèi)存
聯(lián)系人信息
開(kāi)發(fā)輔助程序
Android多媒體
添加語(yǔ)音功能
顯示位置地址
提供向下與橫向?qū)Ш?/span>
支持游戲控制器
訪問(wèn)可穿戴數(shù)據(jù)層
處理多點(diǎn)觸控手勢(shì)
全屏沉浸式應(yīng)用
為多線程創(chuàng)建管理器
數(shù)據(jù)保存
Intent的發(fā)送
更新Notification
優(yōu)化下載以高效地訪問(wèn)網(wǎng)絡(luò)
打印
打包可穿戴應(yīng)用
接收從其他App傳送來(lái)的數(shù)據(jù)
發(fā)送與接收消息
建立靈活動(dòng)態(tài)的UI
處理鍵盤(pán)輸入
Building a Work Policy Controller
建立測(cè)試環(huán)境
創(chuàng)建表盤(pán)
分享文件
顯示Notification進(jìn)度
實(shí)現(xiàn)自適應(yīng)UI流(Flows)
使用設(shè)備管理策略增強(qiáng)安全性
使用能感知版本的組件
執(zhí)行網(wǎng)絡(luò)操作
建立文件分享
添加移動(dòng)
更新你的Security Provider來(lái)對(duì)抗SSL漏洞利用
支持鍵盤(pán)導(dǎo)航
創(chuàng)建和監(jiān)視地理圍欄
發(fā)送并同步數(shù)據(jù)
使用BigView樣式
無(wú)線連接設(shè)備
提供向上導(dǎo)航與歷史導(dǎo)航
最小化定期更新造成的影響
實(shí)現(xiàn)向下的導(dǎo)航
支持不同的屏幕大小
Android 可穿戴應(yīng)用
添加動(dòng)畫(huà)
顯示聯(lián)系人頭像
使用OpenGL ES顯示圖像
處理輸入法可見(jiàn)性
分享文件
保持設(shè)備喚醒
淡化系統(tǒng)Bar
使用NFC分享文件
保存到Preference
Android聯(lián)系人信息與位置信息
創(chuàng)建標(biāo)準(zhǔn)的網(wǎng)絡(luò)請(qǐng)求
使用Drawables
管理Bitmap的內(nèi)存使用
管理Activity的生命周期
按需加載視圖
傳輸資源
為可穿戴設(shè)備創(chuàng)建自定義UI
在一個(gè)線程中執(zhí)行一段特定的代碼
性能優(yōu)化
隱藏導(dǎo)航欄
創(chuàng)建目錄瀏覽器
為多種大小的屏幕進(jìn)行規(guī)劃
View間漸變
使用觸摸手勢(shì)
高效加載大圖
使用CursorLoader在后臺(tái)加載數(shù)據(jù)
創(chuàng)建抽屜式導(dǎo)航(navigation drawer)
管理音頻焦點(diǎn)
創(chuàng)建后臺(tái)服務(wù)
創(chuàng)建功能測(cè)試
創(chuàng)建使用Material Design的應(yīng)用
停止與重啟Activity
添加一個(gè)簡(jiǎn)便的分享功能
啟動(dòng)Activity時(shí)保留導(dǎo)航
TV應(yīng)用清單
創(chuàng)建向后兼容的UI
?# 優(yōu)化自定義View
創(chuàng)建單元測(cè)試
在UI上顯示Bitmap
建立OpenGL ES的環(huán)境
構(gòu)建表盤(pán)服務(wù)
JNI Tips
建立搜索界面
實(shí)現(xiàn)自定義View的繪制
使用HTTPS與SSL
按需操控BroadcastReceiver
分享簡(jiǎn)單的數(shù)據(jù)
繪制形狀
Android位置信息
創(chuàng)建并運(yùn)行可穿戴應(yīng)用
執(zhí)行 Sync Adpater
獲取最后可知位置
創(chuàng)建 Android 項(xiàng)目
實(shí)現(xiàn)高效的導(dǎo)航
退出全屏的Activity
創(chuàng)建Card
兼容音頻輸出設(shè)備
同步數(shù)據(jù)單元
傳輸數(shù)據(jù)時(shí)避免消耗大量電量
保存到文件
緩存Bitmap
提供配置 Activity
調(diào)度重復(fù)的鬧鐘
實(shí)現(xiàn)輔助功能
重復(fù)的下載是冗余的
隱藏狀態(tài)欄
實(shí)現(xiàn)自定義的網(wǎng)絡(luò)請(qǐng)求
規(guī)劃界面和他們之間的關(guān)系
使用Sync Adapter傳輸數(shù)據(jù)
TV應(yīng)用內(nèi)搜索
響應(yīng)觸摸事件
使用Google Cloud Messaging(已廢棄)
控制相機(jī)
Android網(wǎng)絡(luò)連接與云服務(wù)
請(qǐng)求分享一個(gè)文件
處理TV硬件
響應(yīng)UI可見(jiàn)性的變化
使用網(wǎng)絡(luò)服務(wù)發(fā)現(xiàn)
指定輸入法類(lèi)型
優(yōu)化電池壽命
創(chuàng)建TV應(yīng)用
獲取聯(lián)系人列表
拖拽與縮放
啟動(dòng)與停止線程池中的線程
創(chuàng)建 Sync Adpater
使用 WiFi P2P 服務(wù)發(fā)現(xiàn)
開(kāi)始使用Material Design
代理至新的APIs
使用include標(biāo)簽重用layouts
使得View可交互
高效顯示Bitmap
創(chuàng)建企業(yè)級(jí)應(yīng)用
Fragments之間的交互
創(chuàng)建與執(zhí)行測(cè)試用例
綜合:設(shè)計(jì)我們的樣例 App
繪制表盤(pán)
建立簡(jiǎn)單的用戶(hù)界面
自定義動(dòng)畫(huà)
開(kāi)發(fā)輔助服務(wù)
避免出現(xiàn)程序無(wú)響應(yīng)ANR(Keeping Your App Responsive)
使用ViewPager實(shí)現(xiàn)屏幕滑動(dòng)
設(shè)計(jì)高效的導(dǎo)航
Android分享操作(Building Apps with Content Sharing)
提供向后的導(dǎo)航
保持向下兼容
創(chuàng)建TV播放應(yīng)用
縮放View
使用 WiFi 建立 P2P 連接
Android后臺(tái)任務(wù)
連接到網(wǎng)絡(luò)
為 Notification 添加頁(yè)面
使TV應(yīng)用是可被搜索的
添加Action Bar
使用Material的主題
啟動(dòng)另一個(gè)Activity
顯示正在播放卡片
適配不同的系統(tǒng)版本
輕松錄制視頻
創(chuàng)建可穿戴的應(yīng)用
創(chuàng)建自定義的布局
重新創(chuàng)建Activity
使用CursorLoader執(zhí)行查詢(xún)?nèi)蝿?wù)
使用舊的APIs實(shí)現(xiàn)新API的效果
使用備份API
安全要點(diǎn)
Android入門(mén)基礎(chǔ):從這里開(kāi)始
保存并搜索數(shù)據(jù)
根據(jù)網(wǎng)絡(luò)連接類(lèi)型來(lái)調(diào)整下載模式
使用Tabs創(chuàng)建Swipe視圖
SMP(Symmetric Multi-Processor) Primer for Android
解析 XML 數(shù)據(jù)
使用 Volley 傳輸網(wǎng)絡(luò)數(shù)據(jù)
建立ActionBar
Android交互設(shè)計(jì)
使用Intent修改聯(lián)系人信息
增加搜索功能
輕松拍攝照片
定義形狀
測(cè)試你的Activity
在 Notifcation 中接收語(yǔ)音輸入
與其他應(yīng)用的交互
管理系統(tǒng)UI
追蹤手勢(shì)移動(dòng)
Android界面設(shè)計(jì)
執(zhí)行 Android 程序
顯示確認(rèn)界面
創(chuàng)建Lists與Cards
打印HTML文檔
創(chuàng)建TV應(yīng)用
為多屏幕設(shè)計(jì)
定義Shadows與Clipping視圖
使用Fragment建立動(dòng)態(tài)UI
接收Activity返回的結(jié)果
布局變更動(dòng)畫(huà)
定位常見(jiàn)的問(wèn)題
自定義ActionBar的風(fēng)格
定義Layouts
發(fā)送簡(jiǎn)單的網(wǎng)絡(luò)請(qǐng)求
啟動(dòng)與銷(xiāo)毀Activity
與UI線程通信
非UI線程處理Bitmap
創(chuàng)建TV布局
提升Layout的性能
報(bào)告任務(wù)執(zhí)行狀態(tài)
判斷并監(jiān)測(cè)網(wǎng)絡(luò)連接狀態(tài)
兼容不同的設(shè)備
處理按鍵動(dòng)作
優(yōu)化性能和電池使用時(shí)間
給其他App發(fā)送簡(jiǎn)單的數(shù)據(jù)
Implementing App Restrictions
向后臺(tái)服務(wù)發(fā)送任務(wù)請(qǐng)求
展示Card翻轉(zhuǎn)動(dòng)畫(huà)
管理ViewGroup中的觸摸事件
兼容不同的屏幕密度
通過(guò)藍(lán)牙進(jìn)行調(diào)試
為可穿戴設(shè)備創(chuàng)建Notification
控制音量與音頻播放
獲取聯(lián)系人詳情
在表盤(pán)上顯示信息
提供向上的導(dǎo)航
滾動(dòng)手勢(shì)動(dòng)畫(huà)
幫助用戶(hù)在TV上找到內(nèi)容
創(chuàng)建TV導(dǎo)航
為索引指定App內(nèi)容
ActionBar的覆蓋疊加
Android Wear 上的位置檢測(cè)
保護(hù)安全與隱私的最佳策略
Ensuring Compatibility with Managed Profiles
解決云同步的保存沖突
獲取位置更新
創(chuàng)建List
測(cè)試程序
管理網(wǎng)絡(luò)的使用情況
為App內(nèi)容開(kāi)啟深度鏈接
推薦TV內(nèi)容
建立一個(gè)Notification
管理音頻播放
設(shè)計(jì)表盤(pán)
拍照
處理控制器輸入動(dòng)作
判斷并監(jiān)測(cè)設(shè)備的底座狀態(tài)與類(lèi)型
處理查詢(xún)的結(jié)果
保存到數(shù)據(jù)庫(kù)
支持多個(gè)游戲控制器
創(chuàng)建 Stub Content Provider
使得ListView滑動(dòng)順暢
處理數(shù)據(jù)層的事件
創(chuàng)建TV應(yīng)用的第一步
使得你的App內(nèi)容可被Google搜索
將 Notification 放成一疊
創(chuàng)建 Stub 授權(quán)器
暫停與恢復(fù)Activity
管理設(shè)備的喚醒狀態(tài)
Android圖像與動(dòng)畫(huà)
打印照片
云同步
創(chuàng)建TV直播應(yīng)用
為Notification賦加可穿戴特性
提供一個(gè)Card視圖
建立請(qǐng)求隊(duì)列(RequestQueue)
適配不同的語(yǔ)言
創(chuàng)建詳情頁(yè)
測(cè)試UI組件
接收其他設(shè)備的文件
創(chuàng)建自定義View
建立第一個(gè)App
創(chuàng)建2D Picker
監(jiān)測(cè)電池的電量與充電狀態(tài)
打印自定義文檔
抽象出新的APIs
通知提示用戶(hù)
獲取文件信息
運(yùn)用投影與相機(jī)視角
在IntentService中執(zhí)行后臺(tái)任務(wù)
多線程操作
創(chuàng)建一個(gè)Fragment
添加Action按鈕
在不同的 Android 系統(tǒng)版本支持控制器
維護(hù)兼容性
發(fā)送文件給其他設(shè)備
創(chuàng)建TV游戲應(yīng)用
創(chuàng)建自定義的View類(lèi)
代碼性能優(yōu)化建議
Intent過(guò)濾
適配不同的屏幕

建立簡(jiǎn)單的用戶(hù)界面

編寫(xiě):yuanfentiank789 - 原文:http://developer.android.com/training/basics/firstapp/building-ui.html

在本小節(jié)里,我們將學(xué)習(xí)如何用XML創(chuàng)建一個(gè)帶有文本輸入框和按鈕的界面,下一節(jié)課將學(xué)會(huì)使app對(duì)按鈕做出響應(yīng):按鈕被按下時(shí),文本框里的內(nèi)容被發(fā)送到另外一個(gè)Activity。

Android的圖形用戶(hù)界面是由多個(gè)ViewViewGroup構(gòu)建出來(lái)的。View是通用的UI窗體小組件,比如按鈕(Button)或者文本框(text field),而ViewGroup是不可見(jiàn)的,是用于定義子View布局方式的容器,比如網(wǎng)格部件(grid)和垂直列表部件(list)。

Android提供了一個(gè)對(duì)應(yīng)于ViewViewGroup子類(lèi)的一系列XMl標(biāo)簽,我們可以在XML里使用層級(jí)視圖元素創(chuàng)建自己的UI。

Layouts是ViewGroup的子類(lèi),接下來(lái)的練習(xí)將使用LinearLayout。

http://wiki.jikexueyuan.com/project/android-training-geek/images/viewgroup.png" alt="viewgroup" />

Figure 1. 關(guān)于viewgroup對(duì)象如何組織布局分支和包含其他view對(duì)象。

可選的布局文件:在XML中定義界面布局而不是在運(yùn)行時(shí)去動(dòng)態(tài)生成布局是有多個(gè)原因的,其中最重要的一點(diǎn)是這樣可以使得你為不同大小的屏幕創(chuàng)建不同的布局文件。例如,你可以創(chuàng)建2個(gè)版本的布局文件,告訴系統(tǒng)在小的屏幕上使用其中一個(gè)布局文件,在大的屏幕上使用另外一個(gè)布局文件。更多信息,請(qǐng)參考兼容不同的設(shè)備

創(chuàng)建一個(gè)LinearLayout

1 在Android Studio中,從res/layout目錄打開(kāi)activity_my.xml文件。上一節(jié)創(chuàng)建新項(xiàng)目時(shí)生成的BlankActivity,包含一個(gè)activity_my.xml文件,該文件根元素是一個(gè)包含TextView的RelativeLayout。

2 在Preview面板點(diǎn)擊http://wiki.jikexueyuan.com/project/android-training-geek/images/as-hide-side.png" alt="image" />關(guān)閉右側(cè)Preview面板,在Android Studio中,當(dāng)打開(kāi)布局文件時(shí),可以看到一個(gè)Preview面板,點(diǎn)擊這個(gè)面板中的標(biāo)簽,可利用WYSIWYG(所見(jiàn)即所得)工具在Design面板看到對(duì)應(yīng)的圖形化效果,但在本節(jié)直接操作XML文件即可。

3 刪除 TextView 標(biāo)簽.

4 把 RelativeLayout 標(biāo)簽改為 LinearLayout.

5 為< LinearLayout >添加 android:orientation 屬性并設(shè)置值為 "horizontal".

6 去掉android:padding 屬性和tools:context 屬性.

修改后結(jié)果如下:

res/layout/activity_my.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >
</LinearLayout>

LinearLayoutViewGroup的一個(gè)子類(lèi),用于放置水平或者垂直方向的子視圖部件,放置方向由屬性android:orientation設(shè)定。LinearLayout里的子布局按照XML里定義的順序顯示在屏幕上。

所有的Views都需要用到android:layout_widthandroid:layout_height這兩個(gè)屬性來(lái)設(shè)置自身的大小。

由于LinearLayout是整個(gè)視圖的根布局,所以其寬和高都應(yīng)充滿(mǎn)整個(gè)屏幕的,通過(guò)指定width 和 height屬性為"match_parent"。該值表示子View擴(kuò)張自己width和height來(lái)匹配父控件的width和height。

更多關(guān)于Layout屬性的信息,請(qǐng)參照XML布局向?qū)А?/p>

添加一個(gè)文本輸入框

與其它View一樣,我們需要設(shè)置XML里的某些屬性來(lái)指定EditText的屬性值,以下是應(yīng)該在線性布局里指定的一些屬性元素:

1 在 activity_my.xml文件的 < LinearLayout > 標(biāo)簽內(nèi)定義一個(gè) < EditText > 標(biāo)簽,并設(shè)置id屬性為@+id/edit_message.

2 設(shè)置layout_width和layout_height屬性為 wrap_content.

3 設(shè)置hint屬性為一個(gè)string 值的引用edit_message.

代碼如下:

res/layout/activity_my.xml

<EditText android:id="@+id/edit_message"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:hint="@string/edit_message" />

各屬性說(shuō)明:

android:id

這是定義View的唯一標(biāo)識(shí)符??梢栽诔绦虼a中通過(guò)該標(biāo)識(shí)符對(duì)對(duì)象進(jìn)行引用,例如對(duì)這個(gè)對(duì)象進(jìn)行讀和修改的操作(在下一課里將會(huì)用到)。

當(dāng)想從XML里引用資源對(duì)象的時(shí)候必須使用@符號(hào)。緊隨@之后的是資源的類(lèi)型(這里是id),然后是資源的名字(這里使用的是edit_message)。

+號(hào)只是當(dāng)你第一次定義一個(gè)資源ID的時(shí)候需要。這里是告訴SDK此資源ID需要被創(chuàng)建出來(lái)。在應(yīng)用程序被編譯之后,SDK就可以直接使用ID值,edit_message是在項(xiàng)目gen/R.java文件中創(chuàng)建一個(gè)新的標(biāo)識(shí)符,這個(gè)標(biāo)識(shí)符就和EditText關(guān)聯(lián)起來(lái)了。一旦資源ID被創(chuàng)建了,其他資源如果引用這個(gè)ID就不再需要+號(hào)了。這里是唯一一個(gè)需要+號(hào)的屬性。

android:layout_widthandroid:layout_height

對(duì)于寬和高不建議指定具體的大小,使用wrap_content指定之后,這個(gè)視圖將只占據(jù)內(nèi)容大小的空間。如果你使用了match_parent,這時(shí)EditText將會(huì)布滿(mǎn)整個(gè)屏幕,因?yàn)樗鼘⑦m應(yīng)父布局的大小。更多信息,請(qǐng)參考 布局向?qū)?/a>。

android:hint

當(dāng)文本框?yàn)榭盏臅r(shí)候,會(huì)默認(rèn)顯示這個(gè)字符串。對(duì)于字符串@string/edit_message的值所引用的資源應(yīng)該是定義在單獨(dú)的文件里,而不是直接使用字符串。因?yàn)槭褂玫闹凳谴嬖诘馁Y源,所以不需要使用+號(hào)。然而,由于你還沒(méi)有定義字符串的值,所以在添加@string/edit_message時(shí)候會(huì)出現(xiàn)編譯錯(cuò)誤。下邊你可以定義字符串資源值來(lái)去除這個(gè)錯(cuò)誤。

Note: 該字符串資源與id使用了相同的名稱(chēng)(edit_message)。然而,對(duì)于資源的引用是區(qū)分類(lèi)型的(比如id和字符串),因此,使用相同的名稱(chēng)不會(huì)引起沖突。

增加字符串資源

默認(rèn)情況下,你的Android項(xiàng)目包含一個(gè)字符串資源文件,res/values/string.xml。打開(kāi)這個(gè)文件,為"edit_message"增加一個(gè)供使用的字符串定義,設(shè)置值為"Enter a message."

1 在Android Studio里,編輯 res/values 下的 strings.xml 文件.

2 添加一個(gè)string名為"edit_message" ,值為 "Enter a message".

3 再添加一個(gè)string名為 "button_send",值為"Send".下面的內(nèi)容將使用這個(gè)string來(lái)創(chuàng)建一個(gè)按鈕.

4 刪除 "hello world" string這一行.

下邊就是修改好的res/values/strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">My First App</string>
    <string name="edit_message">Enter a message</string>
    <string name="button_send">Send</string>
    <string name="action_settings">Settings</string>
    <string name="title_activity_main">MainActivity</string>
</resources>

當(dāng)你在用戶(hù)界面定義一個(gè)文本的時(shí)候,你應(yīng)該把每一個(gè)文本字符串列入資源文件。這樣做的好處是:對(duì)于所有字符串值,字符串資源能夠單獨(dú)的修改,在資源文件里你可以很容易的找到并且做出相應(yīng)的修改。通過(guò)選擇定義每個(gè)字符串,還允許您對(duì)不同語(yǔ)言本地化應(yīng)用程序。

更多的于不同語(yǔ)言本字符串資源本地化的問(wèn)題,請(qǐng)參考兼容不同的設(shè)備(Supporting Different Devices)

添加一個(gè)按鈕

1 在 Android Studio里, 編輯 res/layout下的 activity_my.xml 文件.

2 在LinearLayout 內(nèi)部, 在< EditText >標(biāo)簽之后定義一個(gè)< Button >標(biāo)簽.

3 設(shè)置Button的width 和 height 屬性值為 "wrap_content" 以便讓Button大小能完整顯示其上的文本.

4 定義button的文本使用android:text 屬性,設(shè)置其值為之前定義好的 button_send 字符串.

此時(shí)的 LinearLayout 看起來(lái)應(yīng)該是這樣

res/layout/activity_my.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >
      <EditText android:id="@+id/edit_message"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="@string/edit_message" />
      <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button_send" />
</LinearLayout>

Note 寬和高被設(shè)置為"wrap_content",這時(shí)按鈕占據(jù)的大小就是按鈕里文本的大小。這個(gè)按鈕不需要指定android:id的屬性,因?yàn)锳ctivity代碼中不會(huì)引用該Button。

當(dāng)前EditText和Button部件只是適應(yīng)了他們各自?xún)?nèi)容的大小,如下圖所示:

http://wiki.jikexueyuan.com/project/android-training-geek/images/edittext_wrap.png" alt="edittext_wrap" />

這樣設(shè)置對(duì)按鈕來(lái)說(shuō)很合適,但是對(duì)于文本框來(lái)說(shuō)就不太好了,因?yàn)橛脩?hù)可能輸入更長(zhǎng)的文本內(nèi)容。因此如果能夠占滿(mǎn)整個(gè)屏幕寬度會(huì)更好。LinearLayout使用權(quán)重屬性來(lái)達(dá)到這個(gè)目的,你可以使用android:layout_weight屬性來(lái)設(shè)置。

權(quán)重的值指的是每個(gè)部件所占剩余空間的大小,該值與同級(jí)部件所占空間大小有關(guān)。就類(lèi)似于飲料的成分配方:“兩份伏特加酒,一份咖啡利口酒”,即該酒中伏特加酒占三分之二。例如,我們?cè)O(shè)置一個(gè)View的權(quán)重是2,另一個(gè)View的權(quán)重是1,那么總數(shù)就是3,這時(shí)第一個(gè)View占據(jù)2/3的空間,第二個(gè)占據(jù)1/3的空間。如果你再加入第三個(gè)View,權(quán)重設(shè)為1,那么第一個(gè)View(權(quán)重為2的)會(huì)占據(jù)1/2的空間,剩余的另外兩個(gè)View各占1/4。(請(qǐng)注意,使用權(quán)重的前提一般是給View的寬或者高的大小設(shè)置為0dp,然后系統(tǒng)根據(jù)上面的權(quán)重規(guī)則來(lái)計(jì)算View應(yīng)該占據(jù)的空間。但是很多情況下,如果給View設(shè)置了match_parent的屬性,那么上面計(jì)算權(quán)重時(shí)則不是通常的正比,而是反比,也就是權(quán)重值大的反而占據(jù)空間小)。

對(duì)于所有的View默認(rèn)的權(quán)重是0,如果只設(shè)置了一個(gè)View的權(quán)重大于0,則該View將占據(jù)除去別的View本身占據(jù)的空間的所有剩余空間。因此這里設(shè)置EditText的權(quán)重為1,使其能夠占據(jù)除了按鈕之外的所有空間。

讓輸入框充滿(mǎn)整個(gè)屏幕的寬度

為讓 EditText充滿(mǎn)剩余空間,做如下操作:

1 在activity_my.xml文件里,設(shè)置EditText的layout_weight屬性值為1 .

2 設(shè)置EditText的layout_width值為0dp.

res/layout/activity_my.xml

<EditText
    android:layout_weight="1"
    android:layout_width="0dp"
    ... />

為了提升布局的效率,在設(shè)置權(quán)重的時(shí)候,應(yīng)該把EditText的寬度設(shè)為0dp。如果設(shè)置"wrap_content"作為寬度,系統(tǒng)需要自己去計(jì)算這個(gè)部件所占有的寬度,而此時(shí)的因?yàn)樵O(shè)置了權(quán)重,所以系統(tǒng)自動(dòng)會(huì)占據(jù)剩余空間,EditText的寬度最終成了不起作用的屬性。

設(shè)置權(quán)重后的效果圖

http://wiki.jikexueyuan.com/project/android-training-geek/images/edittext_gravity.png" alt="edittext_gravity" />

現(xiàn)在看一下完整的布局文件內(nèi)容:

res/layout/activity_my.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">
    <EditText android:id="@+id/edit_message"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:hint="@string/edit_message" />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button_send" />
</LinearLayout>

運(yùn)行應(yīng)用

整個(gè)布局默認(rèn)被應(yīng)用于創(chuàng)建項(xiàng)目的時(shí)候SDK工具自動(dòng)生成的Activity,運(yùn)行看下效果:

  • 在Android Studio里,點(diǎn)擊工具欄里的Run按鈕

  • 或者使用命令行,進(jìn)入你項(xiàng)目的根目錄直接執(zhí)行
ant debug
adb install bin/MyFirstApp-debug.apk

下一小節(jié)將學(xué)習(xí)有關(guān)如何對(duì)按鈕做出相應(yīng),同時(shí)讀取文本中的內(nèi)容,啟動(dòng)另外一個(gè)Activity等。