2.2 布局之AbsoluteLayout(絕對(duì)布局)

Paste_Image.png

1. 介紹:

1.1 AbsoluteLayout.LayoutFlags,它有這些枚舉值

  • None:默認(rèn)值,所有值均是絕對(duì)值
  • All:所有值均是等比例
  • WidthProportional:寬度是等比例的,其他值是絕對(duì)值
  • HeightProportional:高度是等比例的,其他值是絕對(duì)值
  • XProportional:X值是等比例的,其他值是絕對(duì)值
  • YProportional:Y值是等比例的,其他值是絕對(duì)值
  • PositionProportional:X、Y值是等比例的,其他值是絕對(duì)值
  • SizeProportional:高度、寬度是等比例的,其他值是絕對(duì)值
  • 這樣一來(lái)理解的應(yīng)該差不多了。

1.2 AbsoluteLayout.LayoutBounds的理解

  • AbsoluteLayout.LayoutBounds就是坐標(biāo)系分別為( x, y, width, height )

  • 看兩種使用:

    • 絕對(duì)位置,不用等比例,布局的位置是x = 100,y = 100,width = 100,height = 100;
AbsoluteLayout.LayoutBounds="100, 100, 100, 100"
  • 用了等比例,易錯(cuò)點(diǎn)是看到x位置是0.33,錯(cuò)誤理解為x值是上一層視圖寬度的0.33倍
  • 正確的理解方式是 :
  • 自己的X = (父視圖寬度 - 自己寬度) * X比例;
  • 自己的Y = 父視圖高度 * Y比例
  • 自己的寬度是: width = 父視圖寬度 * 寬度比例;
  • 自己的高度是: height = 父視圖高度 * 高度比例;
  • 舉個(gè)例子: 如果父視圖的布局是(0,0,100,100),那么這個(gè)布局的結(jié)果就是:(25,0,25,25)
AbsoluteLayout.LayoutBounds="0.33, 0, 0.25, 0.25"
AbsoluteLayout.LayoutFlags="All"

2. XAML示例代碼

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="XamlSamples.AbsoluteDemoPage"
             Title="Absolute Demo Page">

  <AbsoluteLayout BackgroundColor="Red">
    <BoxView Color="Green"
             AbsoluteLayout.LayoutBounds="0.33, 0, 0.25, 0.25"
             AbsoluteLayout.LayoutFlags="All" />

    <BoxView Color="#8080FF"
             AbsoluteLayout.LayoutBounds="1, 0, 0.25, 0.25"
             AbsoluteLayout.LayoutFlags="All" />

    <BoxView Color="#8080FF"
             AbsoluteLayout.LayoutBounds="0, 0.33, 0.25, 0.25"
             AbsoluteLayout.LayoutFlags="All" />

    <BoxView Color="#8080FF"
             AbsoluteLayout.LayoutBounds="0.67, 0.33, 0.25, 0.25"
             AbsoluteLayout.LayoutFlags="All" />

    <BoxView Color="#8080FF"
             AbsoluteLayout.LayoutBounds="0.33, 0.67, 0.25, 0.25"
             AbsoluteLayout.LayoutFlags="All" />

    <BoxView Color="#8080FF"
             AbsoluteLayout.LayoutBounds="1, 0.67, 0.25, 0.25"
             AbsoluteLayout.LayoutFlags="All" />

    <BoxView Color="#8080FF"
             AbsoluteLayout.LayoutBounds="0, 1, 0.25, 0.25"
             AbsoluteLayout.LayoutFlags="All" />

    <BoxView Color="#8080FF"
             AbsoluteLayout.LayoutBounds="0.67, 1, 0.25, 0.25"
             AbsoluteLayout.LayoutFlags="All" />

  </AbsoluteLayout>
</ContentPage>  

3. 效果圖

  • 綠色部分的位置,就是我們上面所講的等比例布局( AbsoluteLayout.LayoutBounds="0.33, 0, 0.25, 0.25"
    AbsoluteLayout.LayoutFlags="All"

)的效果

Paste_Image.png

4. AbsoluteLayout官方介紹鏈接

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容