Xaml Xamarin表单-TableView下不需要的额外空间
我正在创建我的第一个Android应用程序。我想用一些输入字段显示TableView,然后用一个按钮来处理输入。 我不知道为什么,但是TableView下有额外的空间,或者按钮与底部对齐,但与设置相反 你能帮我修一下吗Xaml Xamarin表单-TableView下不需要的额外空间,xaml,xamarin.forms,tableview,Xaml,Xamarin.forms,Tableview,我正在创建我的第一个Android应用程序。我想用一些输入字段显示TableView,然后用一个按钮来处理输入。 我不知道为什么,但是TableView下有额外的空间,或者按钮与底部对齐,但与设置相反 你能帮我修一下吗 <StackLayout Orientation="Vertical" VerticalOptions="Start" Padding="20,15,20,0" Spacing="0">
<StackLayout Orientation="Vertical" VerticalOptions="Start" Padding="20,15,20,0" Spacing="0">
<Label Text="This is TableView"></Label>
<TableView Intent="Settings" VerticalOptions="Start">
<TableRoot>
<TableSection>
<ViewCell>
<StackLayout Orientation="Horizontal">
<Label Text="item 1"/>
<Entry></Entry>
</StackLayout>
</ViewCell>
<ViewCell>
<StackLayout Orientation="Horizontal">
<Label Text="item 2"/>
<Entry></Entry>
</StackLayout>
</ViewCell>
</TableSection>
</TableRoot>
</TableView>
<Label Text="TableView - END"></Label>
<Button Text="My button" TextColor="DodgerBlue" VerticalOptions="Start" HorizontalOptions="Fill" Margin="40, 10, 40, 10"/>
<Frame VerticalOptions="StartAndExpand" BackgroundColor="Transparent" BorderColor="Black">
<StackLayout Orientation="Vertical">
<StackLayout Orientation="Horizontal" HorizontalOptions="Fill">
<Label Text="aaaa" HorizontalOptions="StartAndExpand"></Label>
<Label Text="value" HorizontalOptions="End"></Label>
</StackLayout>
<StackLayout Orientation="Horizontal">
<Label Text="aaaa"></Label>
<Label Text="value"></Label>
</StackLayout>
<StackLayout Orientation="Horizontal">
<Label Text="aaaa"></Label>
<Label Text="value"></Label>
</StackLayout>
</StackLayout>
</Frame>
</StackLayout>
最好的选择是为每个单元格定义行高,然后为tableview指定HeightRequest。这样可以定义它将占用的空间
<TableView Margin="0" Intent="Settings" HeightRequest="120" RowHeight="60" VerticalOptions="Start">
最好的选择是为每个单元格定义行高,然后为tableview指定HeightRequest。这样可以定义它将占用的空间
<TableView Margin="0" Intent="Settings" HeightRequest="120" RowHeight="60" VerticalOptions="Start">
我不确定这是否是您想要的,但我对这个问题的理解告诉我,您所说的标签
值
与其他标签不同
如果检查此标签的代码:
<Label Text="value" HorizontalOptions="End"></Label>
horizontalpoptions
设置为“End”
,这会导致将其更改为启动将解决您的问题
如果我遗漏了什么,请随时回复
Goodluck我不确定这是否是你想要的,但我对这个问题的理解告诉我,你说的是标签
值
与其他值不同
如果检查此标签的代码:
<Label Text="value" HorizontalOptions="End"></Label>
horizontalpoptions
设置为“End”
,这会导致将其更改为启动将解决您的问题
如果我遗漏了什么,请随时回复
Goodluck不幸的是,Xamarin.Forms TableView/ListView就是这样工作的。预计它下面不会有任何东西。如果您需要下面的内容,您可以手动设置TableView的高度,也可以将内容放在最后一个单元格中,这两种方法都不完美,但无论如何,您都需要寻找一些解决方法,因为这是设计行为(如果您可以使用ListView而不是TableView,会更容易一些)。不幸的是,这就是Xamarin.Forms TableView/ListView的工作原理。预计它下面不会有任何东西。如果您需要下面的内容,您可以手动设置TableView的高度,也可以将内容放在最后一个单元格中,这两种方法都不完美,但在任何情况下,您都需要寻找一些解决方法,因为这是设计行为(如果您可以使用ListView而不是TableView,这会更容易一些).当您询问除了使用
表视图
之外还可以做什么时,当然可以使用网格
,请参见以下示例:
<Grid VerticalOptions="StartAndExpand">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" /> <!-- for the label -->
<ColumnDefinition Width="*" />
<Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="1" /> <!-- For the separator, you might have to experiment with the height -->
<RowDefinition Height="*" />
<RowDefinition Height="1" />
</Grid.RowDefinitions>
<Label Text="Item 1" />
<Entry Grid.Row="0" Grid.Column="1" />
<BoxView BackgroundColor="Black"
HeightRequest="1"
Grid.Row="1"
Grid.Column="0"
Grid.ColumnSpan="2" /> <!-- The separator -->
<Label Grid.Row="2" Grid.Column="0" Text="Item 2" />
<Entry Grid.Row="2" Grid.Column="1" />
<BoxView BackgroundColor="Black"
HeightRequest="1"
Grid.Row="3"
Grid.Column="0"
Grid.ColumnSpan="2" /> <!-- The separator -->
</Grid>
我正在使用黑色背景色的BoxView
s和1
的HeightRequest
作为分隔符。您可能需要对颜色和高度进行实验,以获得所需的结果。低于1
的值可能会产生更细的线条。在一个真实的例子中,我使用了.5
无论如何,这使得XAML方式更加混乱<代码>网格-设计(我自己使用它们时)往往会变得非常笨拙。当您询问除了使用
表格视图
,您还可以做什么时,当然可以使用网格
,请参见以下示例:
<Grid VerticalOptions="StartAndExpand">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" /> <!-- for the label -->
<ColumnDefinition Width="*" />
<Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="1" /> <!-- For the separator, you might have to experiment with the height -->
<RowDefinition Height="*" />
<RowDefinition Height="1" />
</Grid.RowDefinitions>
<Label Text="Item 1" />
<Entry Grid.Row="0" Grid.Column="1" />
<BoxView BackgroundColor="Black"
HeightRequest="1"
Grid.Row="1"
Grid.Column="0"
Grid.ColumnSpan="2" /> <!-- The separator -->
<Label Grid.Row="2" Grid.Column="0" Text="Item 2" />
<Entry Grid.Row="2" Grid.Column="1" />
<BoxView BackgroundColor="Black"
HeightRequest="1"
Grid.Row="3"
Grid.Column="0"
Grid.ColumnSpan="2" /> <!-- The separator -->
</Grid>
我正在使用黑色背景色的BoxView
s和1
的HeightRequest
作为分隔符。您可能需要对颜色和高度进行实验,以获得所需的结果。低于1
的值可能会产生更细的线条。在一个真实的例子中,我使用了.5
无论如何,这使得XAML方式更加混乱<代码>网格-设计(当我自己使用它们时)往往变得相当笨拙。不,情况并非如此。问题在于表视图和按钮之间的空白。抱歉搞混了。不,不是这样的。问题在于表视图和按钮之间的空白。很抱歉造成混淆。你能建议我用什么代替TableView吗?我在考虑网格,但是没有行-行分隔符,我想要它。你能建议我用什么来代替TableView吗?我在考虑网格,但并没有行分隔符,我想有它。