Как добавить веб-представление под меткой или изображением и прокрутить все элементы вместе для IOS и Android? - PullRequest
2 голосов
/ 09 мая 2019

Я занимаюсь разработкой приложения Xamarin.Forms для IOS и Android. Мой код в файле XAML выглядит так:

<StackLayout BackgroundColor="White" Padding="1" VerticalOptions="FillAndExpand">
    <Image HeightRequest="150" Aspect="AspectFill" Source="{Binding Post.ImageUrl}" />
    <Label Text="{Binding Post.Title}" VerticalOptions="FillAndExpand" FontFamily="{StaticResource BoldFont}" FontSize="20" />
    <Label Text="{Binding Post.CreatedOn}" VerticalOptions="FillAndExpand" FontFamily="{StaticResource NormalFont}" FontSize="12" />
    <WebView x:Name="WebViewer" HeightRequest="500" VerticalOptions="FillAndExpand" BackgroundColor="White">
        <WebView.Source>
           <HtmlWebViewSource Html="{Binding Post.Data.Content}" />
        </WebView.Source>
    </WebView>
    <Label Text="Comments" FontSize="12" />
</StackLayout>

Когда я имитирую приложение, на месте остаются только свитки Webview и все остальные элементы. Есть еще один похожий вопрос о Stackoverflow, но решение не работает, и оно не отвечает на мой вопрос для IOS, оно предназначено только для Android.

Это изображение показывает прокрутку веб-просмотра, и его братья и сестры остаются на месте

Я бы хотел, чтобы все они прокручивались вместе, чтобы он работал как одна страница. Это должно быть кроссплатформенное решение, поэтому мне нужно написать код один раз для IOS и Android. Как мне этого добиться?

1 Ответ

1 голос
/ 09 мая 2019

Вы можете попробовать что-то подобное

Дизайнерская сторона

 <?xml version="1.0" encoding="UTF-8"?>
    <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="XamarinTest.View.WebViewDemo">
        <ContentPage.Content>
            <ScrollView>
                <StackLayout BackgroundColor="White" Padding="1" VerticalOptions="FillAndExpand">
                    <Image HeightRequest="150" Aspect="AspectFill" Source="home" />
                    <Label Text="Header"  FontSize="20" />
                    <Label Text="Subheader"   FontSize="12" />
                        <WebView  Source="http://www.google.com"   x:Name="WebViewer"  BackgroundColor="White">
                        </WebView>
                    <Label Text="Comments" FontSize="12" />
                </StackLayout>
            </ScrollView>
        </ContentPage.Content>
    </ContentPage>

Кодирующая сторона

using System;
using System.Collections.Generic;

using Xamarin.Forms;

namespace XamarinTest.View
{
    public partial class WebViewDemo : ContentPage
    {
        public WebViewDemo()
        {
            InitializeComponent();
        }
        protected override void OnAppearing()
        {
            base.OnAppearing();

        }

        protected override void OnSizeAllocated(double width, double height)
        {
            base.OnSizeAllocated(width, height);
            WebViewer.HeightRequest = height;
            WebViewer.WidthRequest = width;

        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...