代码之家  ›  专栏  ›  技术社区  ›  Ian Vink

Xamarin表单:绝对布局

  •  2
  • Ian Vink  · 技术社区  · 6 年前

    我需要一个 AbsoluteLayout SearchBar 在顶部,然后是 ListView 它占据了屏幕的其余部分。

    不正确 在下面 这个 搜索栏

        <AbsoluteLayout VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">
            <SearchBar></SearchBar>
            <ListView 
                AbsoluteLayout.LayoutFlags="All"
                AbsoluteLayout.LayoutBounds="0,0,1,1">
            </ListView>
          </AbsoluteLayout>    
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Neil    6 年前

    部分问题是您在listview上设置的AbsoluteLayoutFlags。

    将其设置为“全部”时,会告诉布局从0,0开始,一直到1,1。这就是listview出现在搜索栏上的原因。

    <AbsoluteLayout VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">
        <SearchBar AbsoluteLayout.LayoutBounds="0,0,1,40"
                   AbsoluteLayout.LayoutFlags="WidthProportional,PositionProportional"/>
        <ListView 
            AbsoluteLayout.LayoutFlags="XProportional,SizeProportional"
            AbsoluteLayout.LayoutBounds="0,40,1,1">
            <ListView.ItemsSource>
                <x:Array Type="{x:Type x:String}">
                    <x:String>mono</x:String>
                    <x:String>monodroid</x:String>
                    <x:String>monotouch</x:String>
                    <x:String>monorail</x:String>
                    <x:String>monodevelop</x:String>
                    <x:String>monotone</x:String>
                    <x:String>monopoly</x:String>
                    <x:String>monomodal</x:String>
                    <x:String>mononucleosis</x:String>
                </x:Array>
            </ListView.ItemsSource>
        </ListView>
    </AbsoluteLayout>
    

    Xamarin Documentation

    比例值定义布局和视图之间的关系。 此关系将子视图的位置或比例值定义为 父布局对应值的比例。这些 值表示为值介于0和1之间的双精度值。

    比例值用于在视图中定位和调整视图的大小 宽度值是比例乘以绝对布局的宽度 宽度。例如,使用宽度为500的绝对布局和视图集 比例宽度为.5时,视图的渲染宽度