私はXamarin.Forms相対的なレイアウトに問題があります、私は4つのビューを持っています3イメージと1つのラベルを写真として私は私の質問を添付します。 2番目の画像の下の2番目の画像の縦のサイズは、画像2のラベルのサイズに応じて変化しています。上記のコメントで述べたように、XAMLXamlの相対レイアウトは、正しい場所に表示を配置することはできません
enter code here
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="demo.AttnamePage"
xmlns:local="clr-namespace:demo.MarkupExtensions" >
<ListView x:Name="AttNamea" HasUnevenRows="True" ItemSelected="AttNamea_ItemSelected">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<RelativeLayout>
<Image x:Name="Mimage" Source="{Binding image }" Aspect="Fill"
RelativeLayout.WidthConstraint=
"{ConstraintExpression Type=RelativeToParent,Property=Width,Factor=1}"
RelativeLayout.XConstraint=
"{ConstraintExpression Type=RelativeToParent,Property=Width,Factor=0}"
RelativeLayout.YConstraint=
"{ConstraintExpression Type=RelativeToParent,Property=Height,Factor=0}"/>
<Image Source="{local:Embeddedimage ResourceId=Demo.Images.barM.jpg }" Aspect="Fill"
RelativeLayout.WidthConstraint=
"{ConstraintExpression Type=RelativeToParent,Property=Width,Factor=1}"
RelativeLayout.YConstraint=
"{ConstraintExpression Type=RelativeToView,ElementName=Mimage,Property=Height,Factor=1}"
RelativeLayout.HeightConstraint=
"{ConstraintExpression Type=RelativeToView,ElementName=label1,Property=Height,Factor=1}"/>
<Label x:Name="label1" Text="{Binding attractionName}" TextColor="White" FontSize="16" HorizontalOptions="Center"
verticalOptions="Center"
RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent,Property=Width,Factor=1}"
RelativeLayout.YConstraint=
"{ConstraintExpression Type=RelativeToView,ElementName=Mimage,Property=Height,Factor=1}"/>
<Image Source="{local:Embeddedimage ResourceId= demo.Images.barD.jpg }" Aspect="Fill"
RelativeLayout.WidthConstraint=
"{ConstraintExpression Type=RelativeToParent,Property=Width,Factor=1}"
RelativeLayout.YConstraint=
"{ConstraintExpression Type=RelativeToView,ElementName=label1,Property=Y,Constant=40}"/>
</RelativeLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ContentPage>
なぜRelativeLayoutを使用していますか?あなたが今までに説明したことから、グリッド(単一の列を持つ)またはVertical StackLayoutは、あなたが望むことをするでしょう。ただし、RelativeLayoutを使用する場合は、C#の柔軟性がXAMLよりも高いため、おそらくC#の最後のイメージに制約を定義する必要があります。 – DavidS
返信いただきありがとうございます。画像上にラベルを貼りたいので、相対レイアウトを使用しています。私はC#を使用しようとしています。はい、コードを再生する必要がありますが、参照してください –