После перевода вида он должен прокручивать весь контент, а если нет, то он должен обрезать контент в скрытой части.

Этот запрос является продолжением этого поста -such-tha">Прокрутка прокрутки не работает, когда она переведена в позицию y, так что нижняя часть скрыта в формах xamarin

Теперь представление прокрутки работает нормально, в некоторых случаях я использовал определение, как показано ниже, я могу либо использовать содержимое абсолютного макета с представлением прокрутки, либо напрямую.

При непосредственном использовании, как в приведенном ниже фрагменте, после перевода путем установки границ макета все окна были расположены на указанной высоте.

Но ранее он будет обрезаться внизу после перевода. Мне нужно такое же поведение, когда прокрутка не используется. Как этого добиться.

        <AbsoluteLayout x:Name="layout" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" Grid.Row="1">

         <Grid  x:Name="scrollView" AbsoluteLayout.LayoutFlags="SizeProportional" AbsoluteLayout.LayoutBounds="0,0,1,1" >
            <Grid.RowDefinitions>
                <RowDefinition Height="*"/>
                <RowDefinition Height="*"/>
                <RowDefinition Height="*"/>
                <RowDefinition Height="*"/>
                <RowDefinition Height="*"/>
                <RowDefinition Height="*"/>
                <RowDefinition Height="*"/>
                <RowDefinition Height="*"/>
                <RowDefinition Height="*"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>

            <BoxView Grid.Row="0" BackgroundColor="Red"></BoxView>
            <BoxView Grid.Row="1" BackgroundColor="Black"></BoxView>

            <BoxView Grid.Row="2" BackgroundColor="Blue"></BoxView>
            <BoxView Grid.Row="3" BackgroundColor="Gray"></BoxView>
            <BoxView Grid.Row="4" BackgroundColor="Green"></BoxView>
            <BoxView Grid.Row="5" BackgroundColor="Red"></BoxView>
            <BoxView Grid.Row="6" BackgroundColor="Black"></BoxView>

            <BoxView Grid.Row="7" BackgroundColor="Blue"></BoxView>
            <BoxView Grid.Row="8" BackgroundColor="Gray"></BoxView>
            <BoxView Grid.Row="9" BackgroundColor="Green"></BoxView>
        </Grid>

Обрезано внизу Расположены на этой высоте

В этом случае, когда я устанавливаю границы макета, он упорядочивается, как на втором изображении, но мне нужно, как на первом изображении.


person yogapriya shanmugam    schedule 12.05.2021    source источник


Ответы (1)


Если у вас нет ScrollView, как было в этом вопросе, просто поставьте 1 в качестве последнего параметра вашего конструктора Rectangle .

Я не знаю, как выглядит остальная часть вашего кода, но вы можете связать разные прямоугольники с разными AbsoluteLayout.LayoutBounds. Например, в случае без ScrollView можно поставить так

        <AbsoluteLayout x:Name="layout" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" Grid.Row="1">
         <Grid  AbsoluteLayout.LayoutBounds="{Binding rectNoScroll}"...
rectNoScroll = new Rectangle(0, 250, 1, 1);

и когда у вас есть ScrollView, вы можете сделать как в здесь.

person adamm    schedule 12.05.2021