代码之家  ›  专栏  ›  技术社区  ›  developer9969

圆圈按钮必须包装在stackLayout CollectionView Xamarin表单中

  •  0
  • developer9969  · 技术社区  · 6 年前

    有人能告诉我为什么要按圆圈按钮吗

    (HeightRequest和WidthRequest的高度角半径为尺寸的一半)

    在一个系列中,你总是要用stacklayout来包装它?

    enter image description here

    密码

    <CollectionView >
            <CollectionView.ItemsLayout>
                <GridItemsLayout Orientation="Vertical" 
                                 VerticalItemSpacing="10"
                                 HorizontalItemSpacing="10" 
                                 Span="3"  />
            </CollectionView.ItemsLayout>
            <CollectionView.ItemsSource>
                <x:Array Type="{x:Type x:String}">
                    <x:String>1</x:String>
                    <x:String>2</x:String>
                    <x:String>3</x:String>
                    <x:String>4</x:String>
                    <x:String>5</x:String>
                    <x:String>6</x:String>
                    <x:String>7</x:String>
                    <x:String>8</x:String>
                    <x:String>9</x:String>
                    <x:String>0</x:String>
                    <x:String>Del</x:String>
                </x:Array>
            </CollectionView.ItemsSource>
            <CollectionView.ItemTemplate>
                <DataTemplate>
                    <StackLayout>
                        <Button 
                            WidthRequest="60"
                            HeightRequest="60"
                            CornerRadius="30"
                            HorizontalOptions="Center"
                            VerticalOptions="Center"
                            BorderWidth="2"
                            BorderColor="Red"
                            Text="{Binding .}"/>
                    </StackLayout>
                </DataTemplate>
            </CollectionView.ItemTemplate>
        </CollectionView>
    
    0 回复  |  直到 6 年前
        1
  •  0
  •   Leon    6 年前

    根据我的研究,如果你 Button 直接在DataTemplate中, WidthRequest 或 HeightRequest 这不管用。大小 按钮 将设置为与父控件相同。

    如果xamarin表单最终在Android平台上呈现布局, onMeasure 方法将被执行。

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    }
    

    如果我们不推翻 测量 方法宽度测量等级和高度测量等级是母公司传递给我们的要求。

    如果你想知道更多关于 测量 在原生安卓系统中,你可以在谷歌中搜索“安卓自定义视图:掌握在线测量”。

    为了支持这个结论,我将蓝色背景设置为“`”。下面是跑步截图。 enter image description here

    如果我移除 CornerRadius="30" 和 StackLayout .这是跑步截图。 enter image description here

    在比较这两种布局之后,结果是相同的。如果要添加特定尺寸的 按钮 在一个 CollectionView ,请包一个 stacklayout .

    推荐文章