【问题标题】:Making an uneditable table with Xamarin.Forms使用 Xamarin.Forms 制作不可编辑的表格
【发布时间】:2016-06-11 12:14:12
【问题描述】:

我正在将我制作的 Android 应用转换为 Xamarin.Forms 以在 iOS 和 Windows Phone 中使用。

我正在尝试做的事情:

我想制作一个简单的 2 列宽表格。我关注了this guide,但是条目单元格是可编辑的,没有属性可以将其关闭,我还需要能够轻松修改这些条目(通过代码)。

我目前拥有的:

var section = new TableSection() { 
    new EntryCell  { Label = "Chest", Text = "0" },
};

TableView tableView = new TableView
        {
            IsEnabled = false,
            Root = new TableRoot
            {
                section
            }
        };

编辑:已经尝试过 TextCell,同样的交易,请查看此屏幕截图

还在我的 textentry 之后添加了一堆随机行

在一个完美的世界里,我想要一个类似于 HTML 表格的东西。

我看到一个不同的线程,有人建议使用列表视图,但我不知道如何用它制作表格。

我用网格尝试了许多不同的设置,但它似乎不起作用

        Grid grid = new Grid
        {
            VerticalOptions = LayoutOptions.FillAndExpand,
            RowDefinitions =
            {
                 new RowDefinition { Height = new GridLength(100, GridUnitType.Absolute) }
            },
            ColumnDefinitions =
            {
                new ColumnDefinition { Width = new GridLength(100, GridUnitType.Absolute) },
                new ColumnDefinition { Width = new GridLength(100, GridUnitType.Absolute) }
            }
        };
        grid.Children.Add(txtChest);
        grid.Children.Add(txtChestResults);

【问题讨论】:

  • 使用 TextCell 而不是 EntryCell。
  • 已经试过了,还是可以修改文字的。查看我最近的编辑。
  • 很抱歉,TextCell 不允许编辑。这是为了简单地显示文本。
  • 刚刚仔细检查,看来您是正确的.. 将很快回复

标签: c# xamarin tableview xamarin.forms


【解决方案1】:

如果有人有更好的解决方案,我几天内不会将此标记为可接受的答案。我愿意接受建议,因为如果我必须在这个“表”中添加另一列,这个解决方案就行不通了。

截至今天(2016 年 6 月 11 日),我不得不说 TableView 的问题太多,不实用。对额外空间的抱怨一直存在,当您触摸文本视图时,它们看起来就像要执行一个动作(没有视频很难解释)。它们是静态文本,不应响应触摸。

这是我制作简单的两列表格的方法(尽管它更像是表格视图而不是传统表格)。悬崖笔记?一个垂直方向的 StackLayout 中的几个水平方向的 StackLayout。我将一个标签放在最左边,另一个放在最右边。最终结果如下所示:

    //Result Items

/* Start chest */
Label txtChest = new Label
{
    Text = "Chest",
    VerticalOptions = LayoutOptions.CenterAndExpand,
    HorizontalOptions = LayoutOptions.StartAndExpand

};
Label txtChestResults = new Label
{
    Text = "0",
    VerticalOptions = LayoutOptions.CenterAndExpand,
    HorizontalOptions = LayoutOptions.EndAndExpand

};
/* End chest */

/* Start Biceps */
Label txtBiceps = new Label
{
    Text = "Biceps",
    VerticalOptions = LayoutOptions.CenterAndExpand,
    HorizontalOptions = LayoutOptions.StartAndExpand
};
Label txtBicepsResults = new Label
{
    Text = "0",
    VerticalOptions = LayoutOptions.CenterAndExpand,
    HorizontalOptions = LayoutOptions.EndAndExpand

};
/* End Biceps */

/* Start Forearms */
Label txtForearms = new Label
{
    Text = "Forearms",
    VerticalOptions = LayoutOptions.CenterAndExpand,
    HorizontalOptions = LayoutOptions.StartAndExpand
};
Label txtForearmsResults = new Label
{
    Text = "0",
    VerticalOptions = LayoutOptions.CenterAndExpand,
    HorizontalOptions = LayoutOptions.EndAndExpand
};
/* End Forearms */


/* Start Neck */
Label txtNeck = new Label
{
    Text = "Neck",
    VerticalOptions = LayoutOptions.CenterAndExpand,
    HorizontalOptions = LayoutOptions.StartAndExpand
};
Label txtNeckResults = new Label
{
    Text = "0",
    VerticalOptions = LayoutOptions.CenterAndExpand,
    HorizontalOptions = LayoutOptions.EndAndExpand
};
/* End Neck */


/* Start Thighs */
Label txtThighs = new Label
{
    Text = "Thighs",
    VerticalOptions = LayoutOptions.CenterAndExpand,
    HorizontalOptions = LayoutOptions.StartAndExpand
};
Label txtThighsResults = new Label
{
    Text = "0",
    VerticalOptions = LayoutOptions.CenterAndExpand,
    HorizontalOptions = LayoutOptions.EndAndExpand
};
/* End Thighs */

/* Start Calves */
Label txtCalves = new Label
{
    Text = "Calves",
    VerticalOptions = LayoutOptions.CenterAndExpand,
    HorizontalOptions = LayoutOptions.StartAndExpand
};
Label txtCalvesResults = new Label
{
    Text = "0",
    VerticalOptions = LayoutOptions.CenterAndExpand,
    HorizontalOptions = LayoutOptions.EndAndExpand
};
/* End Calves */

//Chest StackLayout
StackLayout chestLayout = new StackLayout
{
    Orientation = StackOrientation.Horizontal
};
chestLayout.Children.Add(txtChest);
chestLayout.Children.Add(txtChestResults);


//biceps layout
StackLayout bicepsLayout = new StackLayout
{
    Orientation = StackOrientation.Horizontal
};
bicepsLayout.Children.Add(txtBiceps);
bicepsLayout.Children.Add(txtBicepsResults);


//forearms layout
StackLayout forearmsLayout = new StackLayout
{
    Orientation = StackOrientation.Horizontal
};
forearmsLayout.Children.Add(txtForearms);
forearmsLayout.Children.Add(txtForearmsResults);


//Neck layout
StackLayout neckLayout = new StackLayout
{
    Orientation = StackOrientation.Horizontal
};
neckLayout.Children.Add(txtNeck);
neckLayout.Children.Add(txtNeckResults);


//Thighs layout
StackLayout thighsLayout = new StackLayout
{
    Orientation = StackOrientation.Horizontal
};
thighsLayout.Children.Add(txtThighs);
thighsLayout.Children.Add(txtThighsResults);

//Calves layout
StackLayout calvesLayout = new StackLayout
{
    Orientation = StackOrientation.Horizontal
};
calvesLayout.Children.Add(txtCalves);
calvesLayout.Children.Add(txtCalvesResults);

StackLayout resultsLayout = new StackLayout
{
    Orientation = StackOrientation.Vertical
};
resultsLayout.Children.Add(chestLayout);
resultsLayout.Children.Add(bicepsLayout);
resultsLayout.Children.Add(forearmsLayout);
resultsLayout.Children.Add(neckLayout);
resultsLayout.Children.Add(thighsLayout);
resultsLayout.Children.Add(calvesLayout);


//add chest results
layout.Children.Add(resultsLayout);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-15
    • 1970-01-01
    • 2023-03-05
    • 2021-12-30
    • 1970-01-01
    • 2020-09-23
    相关资源
    最近更新 更多