2016-06-10 2 views
0

Я в процессе преобразования приложения для Android, которое я сделал для Xamarin.Forms для использования в iOS и Windows Phone.Создание таблицы неизменяемости с Xamarin.Forms

То, что я пытаюсь сделать:

enter image description here

Я хочу сделать простой 2 колонки широкий стол. Я следовал this guide, однако ячейки ввода редактировались без свойства, чтобы отключить его, я также должен иметь возможность легко редактировать эти записи (через код).

То, что я в настоящее время имеют:

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

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

EDIT: Уже попробовал TextCell, то же самое дело, проверить этот скриншот из

enter image description here

добавляет также кучу случайных линий после моего TextEntry

enter image description here

В идеальном мире я бы хотел что-то похожее на таблицу 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); 
+3

Используйте TextCell вместо EntryCell. – Jason

+0

Уже пробовал это, все еще позволяет изменять текст. См. Мои последние изменения. –

+0

Прошу прощения, но TextCell не разрешает редактирование. Это просто для отображения текста. –

ответ

0

Я не маркировка это как принятый ответ в течение нескольких дней в случае, если кто-то имеет лучшее решение , Я открыт для предложений, так как если бы мне пришлось добавить еще одну колонку в эту «таблицу», это решение не сработало.

С этой даты (11 июня 2016 года), я должен сказать, что TableView слишком глючит, чтобы быть практичным. Есть последовательные жалобы на дополнительные пробелы, также когда вы касаетесь текстовых просмотров, они выглядят так, как будто они собираются выполнить какое-либо действие (трудно объяснить без видео). Они - статический текст, они не должны реагировать на прикосновение.

Вот как я сделал свою простую таблицу из двух столбцов (хотя это больше похоже на табличный вид, чем обычный стол). Cliffnotes? Несколько горизонтально ориентированных StackLayouts внутри одного вертикального ориентированного StackLayout. Я помещаю один ярлык в крайнее левое, а другой - в крайнее правое. Конечный результат выглядит примерно так: enter image description here

//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); 
Смежные вопросы