AbsoluteLayout中的图像占用了过多的空间

时间:2019-01-30 05:57:41

标签: xamarin.forms

设计要求是在label上放置buttonimage。图像位于DataTemplate的{​​{1}}中。我想使用ListView。但是Absolute Layoutimage占用了太多空间。那么如何使AbsoluteLayoutAbsoluteLayout的大小为image。我知道mimimum最适合这种情况。但这在列表视图Absolute Layout之间留下了很多空白。请帮助我,并说明如何适当地创建Layout以便将尺寸最小化。代码如下

items

编辑

enter image description here

已选择顶部项目。看到每个项目之间的差距。当我点击列表视图项目时,将选择整个灰色区域。我只希望每个项目之间只有10像素的间距

2 个答案:

答案 0 :(得分:0)

绝对布局有时会很棘手,这种棘手的事情是我的事:

现在我将如何操作如下:

 <ListView HasUnevenRows="true"  SeparatorVisibility="None">
        <ListView.ItemTemplate>
            <DataTemplate>
              <ViewCell>
               <AbsoluteLayout> 
               <StackLayout Spacing="0" AbsoluteLayout.LayoutFlags="All", AbsoluteLayout.LayoutBounds="0,0,1,1"> 
    <Image Source="BuyersCard.png" HorizontalOptions="FillAndExpand" 
           VerticalOptions="FillAndExpand" Aspect="AspectFill"/>
               </StackLayout>     
        <Label Text="{Binding Name}" AbsoluteLayout.LayoutFlags="PositionProportional" AbsoluteLayout.LayoutBounds=".1,.2"/>
        <Button Text="Contact" BorderColor="Red" AbsoluteLayout.LayoutFlags="PositionProportional" AbsoluteLayout.LayoutBounds=".7,.2"/>       
              </AbsoluteLayout>
             </ViewCell>          
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>

答案 1 :(得分:0)

我最终决定自己查看.png文件,发现它们周围有许多transparent pixels!这导致图像在margins和侧面带有明显的top/bottom渲染。请参见下面的屏幕截图:

enter image description here

AbsoluteLayout的背景为红色,图像的背景为Aquacropping的图像pixels之后,空间大大减小了。但是,由于某些原因,AbsoluteLayout仍会在extra处引起bottom空间。我将HeightRequest中的AbsoluteLayout设置为150。因此,由AbsoluteLayout拍摄的图像周围的多余空间就消失了。现在我有了这个:

enter image description here