Xamarin 窗体上的网格列问题

grid column issue on Xamarin forms

提问人:Salvatore Lorello 提问时间:7/3/2021 最后编辑:Salvatore Lorello 更新时间:7/4/2021 访问量:192

问:

我在 xaml 中有这个内容页面

<ContentPage.Content>            
    <StackLayout x:Name="stackMadre" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand"  >
        <Picker x:Name="picTipoServizio" 
                SelectedIndexChanged="picTipoServizio_SelectedIndexChanged" >  
                <Picker.Items>
                    <x:String>Item1</x:String>
                    <x:String>Item2</x:String>
                    <x:String>Item3</x:String>
                </Picker.Items>                   
        </Picker>
    
        <ScrollView x:Name="scrollView" Orientation="Vertical" VerticalOptions="FillAndExpand"  HorizontalOptions="FillAndExpand"> 
        <tabView:SfTabView x:Name="tabView" TabItemTapped="TabView_TabItemTapped" SelectionChanged="SfTabView_SelectionChanged"
                           VerticalOptions="FillAndExpand"  HorizontalOptions="FillAndExpand"   >           
       </tabView:SfTabView>
          </ScrollView>           
    </StackLayout>       
</ContentPage.Content>

初始化页面时,我创建一个网格,该网格使用此代码填充当前所选选项卡项的内容

Grid grid = new Grid();
        //cera la griglia 
        grid.VerticalOptions = LayoutOptions.FillAndExpand;
        grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(0.7 , GridUnitType.Star)  });
        grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(0.3, GridUnitType.Star) });

在此之后,它始终基于其他控件工作,我使用此代码创建必要的行

grid.RowDefinitions.Add(new RowDefinition { Height = 100 });
                       grid.Children.Add(label, 0, p);
                       grid.Children.Add(button, 1, p);

对于第一个选项卡,没关系,但是对于第二个选项卡,我有这个问题, 网格未正确形成。看屏幕

firstTab ==>:https://i.stack.imgur.com/io4w8.jpg

secondTab ==>:https://i.stack.imgur.com/gPZYx.jpg

在相同的代码中,我还有另一个问题,那就是scrollview的滚动不起作用,您有什么想法吗?

C# Xamarin.Forms 网格布局

评论

0赞 Jason 7/3/2021
您如何将网格添加到选项卡中?
0赞 Salvatore Lorello 7/3/2021
将函数分配给返回 gird 的选定选项卡的内容
1赞 Jason 7/3/2021
请发布实际代码
0赞 ToolmakerSteve 7/3/2021
问题一定出在你尚未显示的某些代码中。“当前所选 TabItem 的内容” - 您发布的代码片段未提及 TabItem。您也不会显示选项卡项的创建。也许第二个选项卡没有填充宽度。也许您现在有一个包含 4 列的网格,而不是 2 个网格,每个选项卡一个,每个选项卡有 2 列。调试错误的最佳方法是从更简单的代码开始。如果在第二个选项卡上放置背景颜色,该颜色会填充宽度吗?
0赞 ToolmakerSteve 7/3/2021
似乎第二个选项卡不是默认的。也许它在页面第一次出现时就被布置好了。即使它还不可见。但它没有内容,所以没有全宽。HorizontallOptions = LayoutOptions.FillAndExpand

答: 暂无答案