Горизонтальное выравнивание для элементов ListView - PullRequest
0 голосов
/ 04 марта 2020

У меня есть страница:

public partial class MenuPage : ContentPage
{
    public MenuPage ()
    {

        StackLayout menu = new StackLayout { };
        menu.Children.Add(new ListView
        {
            HorizontalOptions = LayoutOptions.Center,
            ItemsSource = new string[]
            {
                "Settings",
                "About"
            }
        });

        Content = menu;

    }
}

Я пытаюсь выровнять по центру содержимое элементов ListView (с HorizontalOptions = LayoutOptions.Center), но эта опция не действует (какие бы значения я ни установил для *) 1005 * - Я достигну выравнивания только на левой стороне). Как правильно центрировать содержимое клеток?

1 Ответ

1 голос
/ 05 марта 2020

Как сказал Джейсон, вам нужно установить HorizontalOptions каждого элемента в ListView. Это проще определить в xaml. Если вы хотите реализовать его в коде позади, вы можете проверить следующий код.

Вы можете определить пользовательскую ячейку

public CustomCell()
{
   //instantiate each of our views

   StackLayout horizontalLayout = new StackLayout() {

      HorizontalOptions=LayoutOptions.CenterAndExpand,
      VerticalOptions = LayoutOptions.CenterAndExpand


   };

   Label Content = new Label();

   //set bindings

   Content.SetBinding(Label.TextProperty, ".");

   Content.HorizontalOptions = LayoutOptions.CenterAndExpand;
   Content.TextColor = Color.Red;

   horizontalLayout.Children.Add(Content);
   View = horizontalLayout;
}
StackLayout menu = new StackLayout { };

var listview = new ListView
{

   ItemsSource = new string[]
   {
      "Settings",
      "About"
   }
};

listview.ItemTemplate = new DataTemplate(typeof(CustomCell));

menu.Children.Add(listview);

Content = menu;

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...