[英]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.