首頁(yè) 收藏 QQ群
 網(wǎng)站導(dǎo)航

ZNDS智能電視網(wǎng) 推薦當(dāng)貝市場(chǎng)

TV應(yīng)用下載 / 資源分享區(qū)

軟件下載 | 游戲 | 討論 | 電視計(jì)算器

綜合交流 / 評(píng)測(cè) / 活動(dòng)區(qū)

交流區(qū) | 測(cè)硬件 | 網(wǎng)站活動(dòng) | Z幣中心

新手入門(mén) / 進(jìn)階 / 社區(qū)互助

新手 | 你問(wèn)我答 | 免費(fèi)刷機(jī)救磚 | ROM固件

查看: 10599|回復(fù): 0
上一主題 下一主題
[教程]

android layout_weight講解

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2013-8-28 16:29 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
9當(dāng)填充屬性是wrap_content時(shí),隨著layout_weight的變大,該控件的優(yōu)先級(jí)越高,   
當(dāng)填充屬性是fill_parent時(shí),隨著layout_wight的變大,該控件的優(yōu)先級(jí)越低   
   
   
在網(wǎng)上看了一些對(duì)Layout_weight的講解,有些說(shuō)的比較片面,只列舉了一種情況,然后自己通過(guò)實(shí)驗(yàn)和一些比較好的文章總結(jié)了一下,特此記錄下來(lái),以備以后所用。Layout_weight是線性布局,也就是LinearLayout里面用到的,下面通過(guò)實(shí)驗(yàn)來(lái)看這個(gè)Layout_weight的特性。   
1.當(dāng)控件的屬性android:layout_width="fill_parent"時(shí),布局文件如下:   
Xml代碼   
        <?xml version="1.0" encoding="utf-8"?>   
        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   
            android:orientation="horizontal" android:layout_width="fill_parent"   
            android:layout_height="fill_parent">   
            <Button android:layout_width="fill_parent"   
                android:layout_height="wrap_content" android:layout_weight="1"   
                android:text="Button1" />   
            <Button android:layout_width="fill_parent"   
                android:layout_height="wrap_content" android:layout_weight="2"   
                android:text="Button2" />   
        </LinearLayout>   
         在這里Button1的Layout_weight=1,Buttong2的Layout_weight=2,運(yùn)行效果為:   
     
        我們看到,Button1占了2/3,Button2占了1/3。如果此時(shí)把button2的weight設(shè)置成2000,不是說(shuō)Button2就消失了,而是Button1的寬度幾乎占滿(mǎn)了屏幕寬度,而屏幕最后一絲細(xì)條則是留給Button2的,已近非常小了,沒(méi)有顯示出來(lái)。截圖如下:   
     
   
         得出結(jié)論:在layout_width設(shè)置為fill_parent的時(shí)候,layout_weight代表的是你的控件要優(yōu)先盡可能的大,但盡可能大是有限度的,即fill_parent.   
            
        2.當(dāng)控件的屬性android:layout_width="wrap_content"時(shí),布局文件如下:   
   
Xml代碼   
        <?xml version="1.0" encoding="utf-8"?>   
        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   
            android:orientation="horizontal" android:layout_width="fill_parent"   
    android:layout_height="fill_parent">   
            <Button android:layout_width="wrap_content"   
                android:layout_height="wrap_content" android:layout_weight="1"   
                android:text="Button1" />   
            <Button android:layout_width="wrap_content"   
                android:layout_height="wrap_content" android:layout_weight="2"   
                android:text="Button2" />   
        </LinearLayout>   
         同樣,Button1的weight設(shè)置為1,Button2的weight設(shè)置為2,但是效果與fill_parent的效果截然相反。運(yùn)行效果如下:   
     
        這時(shí),和fill_parent正好相反,Button1的寬度占據(jù)了屏幕寬度的1/3,而B(niǎo)utton2的寬度占據(jù)了屏幕的2/3,如果此時(shí)把Button2的weight設(shè)置為2000,按照之前理解,Button1應(yīng)該小的幾乎在屏幕上看不到,但是錯(cuò)了,實(shí)驗(yàn)告訴我們,當(dāng)Button1的weight非常小時(shí),也要"wrap_content",也就是要保證Button1至少能夠顯示。以下是Button2設(shè)置weight為2000時(shí)的運(yùn)行截圖:   
     
        我們看到,Button1已經(jīng)足夠小,但是要保證他能顯示出來(lái),因此得出結(jié)論:   
        在layout_width設(shè)置為wrap_content的時(shí)候,layout_weight代表的是你的控件要優(yōu)先盡可能的小,但這個(gè)小是有限度的,即wrap_content.   
當(dāng)了解這些后,我們?cè)僭O(shè)計(jì)程序時(shí),為了能夠自適應(yīng)屏幕,不想給控件一個(gè)指定的寬度和高度,就可以使用這個(gè)weight屬性來(lái)讓它按自己比例來(lái)劃分屏幕高度或者寬度了。   
   

上一篇:【轉(zhuǎn)】Android應(yīng)用及應(yīng)用管理
下一篇:路徑規(guī)劃

本版積分規(guī)則

Archiver|新帖|標(biāo)簽|軟件|Sitemap|ZNDS智能電視網(wǎng) ( 蘇ICP備2023012627號(hào) )

網(wǎng)絡(luò)信息服務(wù)信用承諾書(shū) | 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證:蘇B2-20221768 丨 蘇公網(wǎng)安備 32011402011373號(hào)

GMT+8, 2024-10-23 06:19 , Processed in 0.051584 second(s), 15 queries , Redis On.

Powered by Discuz!

監(jiān)督舉報(bào):report#znds.com (請(qǐng)將#替換為@)

© 2007-2024 ZNDS.Com

快速回復(fù) 返回頂部 返回列表