簡體   English   中英

使用Xamarin.Forms制作無法編輯的表

[英]Making an uneditable table with Xamarin.Forms

我正在將制作的Android應用程序轉換為Xamarin.Forms,以便在iOS和Windows Phone中使用。

我正在嘗試做的是:

在此處輸入圖片說明

我想做一個簡單的2欄寬的表格。 我遵循了本指南,但是條目單元格是可編輯的,沒有屬性可以將其關閉,我還需要能夠輕松地(通過代碼)修改這些條目。

我目前所擁有的:

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 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);

如果有人有更好的解決方案,幾天來我就不會將其標記為可接受的答案。 我樂於接受建議,因為如果必須在此“表”中添加另一列,則此解決方案將行不通。

截至該日期(2016年6月11日),我不得不說TableView的bug太大了,無法實用。 人們一直在抱怨多余的空間,當您觸摸文本視圖時,它們看起來就像是要執行一項操作(沒有視頻就很難解釋)。 它們是靜態文本,不應響應觸摸。

這是我制作簡單的兩列表的方式(盡管它比常規表更像表格視圖)。 懸崖音符? 一個垂直定向StackLayout內的幾個水平定向StackLayouts。 我將一個Label放置在最左邊,將另一個放置在最右邊。 最終結果如下所示: 在此處輸入圖片說明

    //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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM