【发布时间】:2019-10-01 14:30:09
【问题描述】:
使用 Xamarin.Forms 在 Android 上开发一个项目。我正在尝试创建一个包含六个图像按钮的页面,以在应用程序中导航用户。垂直半页,右侧 3 个,左侧 3 个。没有滚动没有其他东西。当我使用绝对布局时,只有屏幕底部的图像有效。其他图像按钮不起作用。如果我只放两张图片,它们就可以工作。
他们在一个网格中。我删除了网格尝试,没有任何改变。
<AbsoluteLayout BackgroundColor="Black"
AbsoluteLayout.LayoutBounds="0, 220, 1, 50" AbsoluteLayout.LayoutFlags="XProportional,WidthProportional">
<AbsoluteLayout AbsoluteLayout.LayoutBounds="9,0,.4,.9" AbsoluteLayout.LayoutFlags="WidthProportional,HeightProportional">
<Image Source="historical"
AbsoluteLayout.LayoutBounds="15,.1" AbsoluteLayout.LayoutFlags="YProportional">
<Image.GestureRecognizers>
<TapGestureRecognizer
Tapped="TapGestureRecognizer_Tapped"/>
</Image.GestureRecognizers>
</Image>
</AbsoluteLayout>
<AbsoluteLayout AbsoluteLayout.LayoutBounds="9,0,.4,.9" AbsoluteLayout.LayoutFlags="WidthProportional,HeightProportional">
<Image Source="hotel"
AbsoluteLayout.LayoutBounds="15,.5" AbsoluteLayout.LayoutFlags="YProportional" >
<Image.GestureRecognizers>
<TapGestureRecognizer
Tapped="TapGestureRecognizer_Tapped_1"/>
</Image.GestureRecognizers>
</Image>
</AbsoluteLayout>
<AbsoluteLayout AbsoluteLayout.LayoutBounds="9,0,.4,.9" AbsoluteLayout.LayoutFlags="WidthProportional,HeightProportional">
<Image Source="camp"
AbsoluteLayout.LayoutBounds="15,.9" AbsoluteLayout.LayoutFlags="YProportional" >
<Image.GestureRecognizers>
<TapGestureRecognizer
Tapped="Camp_Clicked"/>
</Image.GestureRecognizers>
</Image>
</AbsoluteLayout>
<AbsoluteLayout AbsoluteLayout.LayoutBounds="190,0,.4,.9" AbsoluteLayout.LayoutFlags="WidthProportional,HeightProportional">
<Image Source="food"
AbsoluteLayout.LayoutBounds="12,.1" AbsoluteLayout.LayoutFlags="YProportional" >
<Image.GestureRecognizers>
<TapGestureRecognizer
Tapped="TapGestureRecognizer_Tapped_2"/>
</Image.GestureRecognizers>
</Image>
</AbsoluteLayout>
<AbsoluteLayout AbsoluteLayout.LayoutBounds="190,0,.4,.9" AbsoluteLayout.LayoutFlags="WidthProportional,HeightProportional">
<Image Source="airport"
AbsoluteLayout.LayoutBounds="12,.5" AbsoluteLayout.LayoutFlags="YProportional" >
<Image.GestureRecognizers>
<TapGestureRecognizer
Tapped="TapGestureRecognizer_Tapped_3"/>
</Image.GestureRecognizers>
</Image>
</AbsoluteLayout>
<AbsoluteLayout AbsoluteLayout.LayoutBounds="190,0,.4,.9" AbsoluteLayout.LayoutFlags="WidthProportional,HeightProportional">
<Image Source="adventure"
AbsoluteLayout.LayoutBounds="12,.9" AbsoluteLayout.LayoutFlags="YProportional" >
<Image.GestureRecognizers>
<TapGestureRecognizer
Tapped="Adventure_Clicked"/>
</Image.GestureRecognizers>
</Image>
</AbsoluteLayout>
</AbsoluteLayout>
这是网格版本。这也有同样的问题。
<Grid>
<Grid Grid.Column="0" >
<AbsoluteLayout BackgroundColor="Black"
AbsoluteLayout.LayoutBounds="0, 220, 1, 50" AbsoluteLayout.LayoutFlags="XProportional,WidthProportional">
<AbsoluteLayout AbsoluteLayout.LayoutBounds="0,0,.9,.9" AbsoluteLayout.LayoutFlags="WidthProportional,HeightProportional">
<Image Source="historical"
AbsoluteLayout.LayoutBounds="15,.1" AbsoluteLayout.LayoutFlags="YProportional">
<Image.GestureRecognizers>
<TapGestureRecognizer
Tapped="TapGestureRecognizer_Tapped"/>
</Image.GestureRecognizers>
</Image>
</AbsoluteLayout>
<AbsoluteLayout AbsoluteLayout.LayoutBounds="0,0,.9,.9" AbsoluteLayout.LayoutFlags="WidthProportional,HeightProportional">
<Image Source="hotel"
AbsoluteLayout.LayoutBounds="15,.5" AbsoluteLayout.LayoutFlags="YProportional" >
<Image.GestureRecognizers>
<TapGestureRecognizer
Tapped="TapGestureRecognizer_Tapped_1"/>
</Image.GestureRecognizers>
</Image>
</AbsoluteLayout>
<AbsoluteLayout AbsoluteLayout.LayoutBounds="0,0,.9,.9" AbsoluteLayout.LayoutFlags="WidthProportional,HeightProportional">
<Image Source="camp"
AbsoluteLayout.LayoutBounds="15,.9" AbsoluteLayout.LayoutFlags="YProportional" >
<Image.GestureRecognizers>
<TapGestureRecognizer
Tapped="Camp_Clicked"/>
</Image.GestureRecognizers>
</Image>
</AbsoluteLayout>
</AbsoluteLayout>
</Grid>
<Grid Grid.Column="1">
<AbsoluteLayout BackgroundColor="Black"
AbsoluteLayout.LayoutBounds="0, 220, 1, 50" AbsoluteLayout.LayoutFlags="XProportional,WidthProportional">
<AbsoluteLayout AbsoluteLayout.LayoutBounds="0,0,.9,.9" AbsoluteLayout.LayoutFlags="WidthProportional,HeightProportional">
<Image Source="food"
AbsoluteLayout.LayoutBounds="12,.1" AbsoluteLayout.LayoutFlags="YProportional" >
<Image.GestureRecognizers>
<TapGestureRecognizer
Tapped="TapGestureRecognizer_Tapped_2"/>
</Image.GestureRecognizers>
</Image>
</AbsoluteLayout>
<AbsoluteLayout AbsoluteLayout.LayoutBounds="0,0,.9,.9" AbsoluteLayout.LayoutFlags="WidthProportional,HeightProportional">
<Image Source="airport"
AbsoluteLayout.LayoutBounds="5,.5" AbsoluteLayout.LayoutFlags="YProportional" >
<Image.GestureRecognizers>
<TapGestureRecognizer
Tapped="TapGestureRecognizer_Tapped_3"/>
</Image.GestureRecognizers>
</Image>
</AbsoluteLayout>
</AbsoluteLayout>
</Grid>
</Grid>
【问题讨论】:
-
这是没有工作图像按钮的页面布局。link
-
AbsoluteLayouts可以重叠视图并防止其他人被窃听。我建议回到 Grid 计划。这也将允许不同大小的视图。你能显示你拥有的网格代码吗?然后我们也许可以看到为什么 Grid 有问题 -
我添加了网格版本,TaylorD
标签: visual-studio xaml xamarin.forms xamarin.android