HeightRequest
(RelativeLayout
) 포인트를 실제 사이즈 이미지로 입력해야합니다. 나는 서버로부터 이미지를 얻는다. 크기는 720x250
입니다. 제 코드를보십시오. 바로 알려 드리겠습니다. RelativeLayout
을 사용해야합니다.Xamarin.Forms을 통해 실제 크기의 이미지로 HeightRequest 포인트 (RelativeLayout)를 받으세요.
<ListView
x:Name="EventsListView"
GroupDisplayBinding="{Binding EventGroupTitle}"
HasUnevenRows="True"
IsGroupingEnabled="True"
ItemTapped="ListView_OnItemTapped"
ItemsSource="{Binding GroupedItems}"
SeparatorVisibility="None">
<ListView.GroupHeaderTemplate>
</ListView.GroupHeaderTemplate>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell BindingContextChanged="BindableObject_OnBindingContextChanged">
<RelativeLayout x:Name="RelativeLayout" Padding="0">
<!-- Background picture -->
<controls:BExtendedCachedImage
x:Name="Picture"
Aspect="AspectFit"
CacheType="Disk"
DownsampleToViewSize="True"
LoadingPlaceholder="backgroundBlur"
RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToView,
ElementName=RelativeLayout,
Property=Height}"
RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToView,
ElementName=RelativeLayout,
Property=Width}"
Source="{Binding Picture}" />
</RelativeLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Source="{Binding Picture}"
- 서버의 사진입니다. BindableObject_OnBindingContextChanged
의 코드에서 HeightRequest
(RelativeLayout
)을 변경해야합니다. 그러나 높이를 수동으로 설정하지 않으면 셀이 최대 높이까지 늘어납니다. 내 코드 숨김을 살펴보십시오.
private void BindableObject_OnBindingContextChanged(object sender, EventArgs e)
{
var cell = (ViewCell) sender;
var layout = cell.View.FindByName<RelativeLayout>("RelativeLayout");
var bc = (GroupEventsMapPageModel) BindingContext;
layout.HeightRequest = THIS_MANUALL_VALUE;
}
어떻게 THIS_MANUALL_VALUE을 (를) 얻을 수 있습니까? 그나마 작업 -
는이 코드var device = Resolver.Resolve<IDevice>();
var display = device.Display;
return display.Scale;
이미지 Height (250) \ display.Scale
를 통해 시도했다. 탭을 만듭니다. xxxhdpi 장치 (640 dpi)로 - 4 (스케일) - layout.HeightRequest = 79;
xxxhdpi 장치 (560 dpi)로 - 3.5 (스케일) - layout.HeightRequest = 93;
xhdpi 장치 (315 dpi)로 - 2 (스케일) - layout.HeightRequest = 110;
hdpi에 장치 (240 dpi)로 - 1.5 (Scale) - layout.HeightRequest = 165;
그러나 대각선을 변경할 때주의해야합니다. 4.7 "xxhdpi 장치 (420dpi) - 2.625 (저울) - layout.HeightRequest = 87;
5,2"xxhdpi 장치 (420dpi) - 2.625 (저울) - layout.HeightRequest = 130;
수식을 얻도록 도와주세요.
이 질문은 여기 저기에 있습니다. "높이"는 무엇을 찾고 있습니까? –
@ Joshua Poling, HeightRequest (Xamarin point)를 찾고 있습니다. 예를 들어 –