如何在Xamarin.Forms中调整Horizo​​ntal ListView的大小?

时间:2014-06-26 20:39:56

标签: listview xamarin xamarin.forms

我看到this entry并试一试,是的,滚动方向变为水平。

但是,视图的大小不会调整为查看大纲。

结果如下:

Android result iOS result

即使旋转视图,如何调整视图大小?

2 个答案:

答案 0 :(得分:4)

您可以使用相对布局来调整位置。这是我使用旋转垂直列表视图实现的水平列表视图的XAML示例:

<?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="ExampleProject.SomePage" >
    <ContentPage.Content>
        <RelativeLayout>
            <ListView x:Name="listView"
                      ItemsSource="{Binding ExampleList}"
                      RowHeight="120"
                      Rotation="270"
                      RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.5, Constant=-60}"
                      RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=-0.5, Constant=60}"
                      RelativeLayout.WidthConstraint="{ConstraintExpression Type=Constant, Constant=120}"
                      RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=1}"
                      >
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <ViewCell>
                            <ViewCell.View>
                                <Label Rotation="90"
                                       TranslationX="120" />
                            </ViewCell.View>
                        </ViewCell>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
            <StackLayout
                RelativeLayout.XConstraint="{ConstraintExpression Type=Constant, Constant=0}"
                RelativeLayout.YConstraint="{ConstraintExpression Type=Constant, Constant=120}"
                RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=1}"
                RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=1, Constant=-120}"
                >
                <!-- Some content below list view -->
            </StackLayout>
        </RelativeLayout>
    </ContentPage.Content>
</ContentPage>

这适用于iOS和Android。

答案 1 :(得分:1)

ListView未经旋转测量。如果你把它做成方形,一旦旋转它就不应该从屏幕上流出。