【问题标题】:TableView Height Wrapping (Xamarin.Forms)TableView 高度环绕 (Xamarin.Forms)
【发布时间】:2017-08-01 22:12:55
【问题描述】:

我的表格视图中的项目很少,但面临挑战,TableView 不会根据其中的项目自动包装它的高度,TableView 很长但项目很少,我该如何解决这个问题。下面是我的 XAML 代码:

<TableView Intent="Form" x:Name="sales_tableView" RowHeight="-1">
            <TableView.Root >
                <TableSection Title="Agent Sales Details">

                    <TextCell Text="Agent Number" x:Name="agentNumber_txtcell" DetailColor="Purple"   />
                    <TextCell Text="Agent Rating "  x:Name="agentrating_txtcell" DetailColor="Purple"/>
                    <TextCell Text="Agent Phone "  x:Name="agentphone_txtcell" DetailColor="Purple" />
                    <TextCell Text="Agent Email " x:Name="agentemail_txtcell" DetailColor="Purple" />

                </TableSection>
            </TableView.Root>
        </TableView>

编辑:

这是屏幕截图:

【问题讨论】:

  • 你能提供一个它正在做什么的快速屏幕截图吗?可能会让我们更好地了解控件是/可能用于定位文本的约束。
  • 我已经提供了屏幕截图,检查TableView和按钮之间的距离,TableView没有自动包装。

标签: c# xamarin.forms tableview


【解决方案1】:

关于这个问题,这就是我解决这个问题的方法,我注意到如果你设置一个表视图的HeightRequest 范围从0,1,2 and above,表视图高度仍然很长,所以我只设置@ 987654323@ 的值来自0,-1,-2,...

下面是我的代码示例:

  <TableView Intent="Form" x:Name="sales_tableView" RowHeight="-1" HeightRequest="-2">
                <TableView.Root >
                    <TableSection Title="Agent Sales Details">

                        <TextCell Text="Agent Number" x:Name="agentNumber_txtcell" DetailColor="Purple"   />
                        <TextCell Text="Agent Rating "  x:Name="agentrating_txtcell" DetailColor="Purple"/>
                        <TextCell Text="Agent Phone "  x:Name="agentphone_txtcell" DetailColor="Purple" />
                        <TextCell Text="Agent Email " x:Name="agentemail_txtcell" DetailColor="Purple" />

                    </TableSection>
                </TableView.Root>
            </TableView>

希望这会有所帮助,编码愉快

【讨论】:

  • 这段代码的作用就像魅力,惊人的想法,仍然是堆栈。谢谢@Lutaaaya
【解决方案2】:

因此,您可以简单地将静态 ViewCell 添加到包含您的按钮的表格底部,并正常连接到后面代码中的 click 方法,然后将背景设置为透明。

<TableView Intent="Form" x:Name="sales_tableView" RowHeight="-1">
            <TableView.Root >
                <TableSection Title="Agent Sales Details">

                    <TextCell Text="Agent Number" x:Name="agentNumber_txtcell" DetailColor="Purple"   />
                    <TextCell Text="Agent Rating "  x:Name="agentrating_txtcell" DetailColor="Purple"/>
                    <TextCell Text="Agent Phone "  x:Name="agentphone_txtcell" DetailColor="Purple" />
                    <TextCell Text="Agent Email " x:Name="agentemail_txtcell" DetailColor="Purple" />

                    <ViewCell>
                        <StackLayout Orientation="Horizontal">
                            <Button Text="MY CLIENTS" Clicked="MyClickMethod" />
                        </StackLayout>
                    </ViewCell>

                </TableSection>
            </TableView.Root>
    </TableView>

我认为您可以在 XAML 中设置背景颜色,我认为您只需添加此属性

BackgroundColor="Transparent"  

到 tableview 的 xaml,但我不太记得这是否正确,无论哪种方式你都可以在后面的代码中做同样的事情:

sales_tableView.BackgroundColor = Color.Transparent;

【讨论】:

    【解决方案3】:
    <TableView Intent="Settings" HasUnevenRows="true">
    

    注意:HasUnevenRows="true"

    【讨论】:

    • 让我试试看
    猜你喜欢
    • 2019-01-25
    • 1970-01-01
    • 1970-01-01
    • 2020-02-23
    • 2018-08-26
    • 1970-01-01
    • 2019-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多