xamarin.формирует представление списка потоков с чередующимися столбцами

#xamarin.forms

Вопрос:

Я использую flowlistview с этими свойствами:

         <flv:FlowListView
            Grid.Row="1"
            BackgroundColor="Transparent"
            Scrolled="listview_allAds_Scrolled"
            VerticalOptions="Fill"
            FlowIsLoadingInfinite="False"
            FlowItemAppearing="listview_allAds_FlowItemAppearing"                 
            FlowIsLoadingInfiniteEnabled="False"
            Refreshing="listview_allAds_Refreshing"
            FlowColumnCount="2"
            IsPullToRefreshEnabled="True"
            Margin="5,0,5,0"
            VerticalScrollBarVisibility="Never"
            FlowItemTapped="listview_allAds_FlowItemTapped"
            HasUnevenRows="True"
            x:Name="listview_allAds" >
 

Это отображает 2 элемента рядом друг с другом с макетом, определенным в моей табличке данных.

Но время от времени и так часто мне нужно отображать элемент, который проходит весь экран и не находится в том же макете, что и селектор шаблонов данных, например:

введите описание изображения здесь

Как я могу этого достичь?

Комментарии:

1. Цель DataTemplateSelector состоит в том, чтобы выбирать между различными макетами — поэтому создайте другой шаблон, который делает то, что вам нужно. Затем переопределите DataTemplateSelector.OnSelectTemplate и добавьте код , который возвращает этот шаблон при соответствующих условиях.

2. Это я понимаю, но это все равно будет отображать макет внутри одного из этих столбцов, но мне нужно, чтобы он перезаписал оба столбца

3. Извините, я недостаточно внимательно изучил ваш код. Взгляните на Flexlayout класс — возможно, вы сможете достичь своей цели, если немного поработаете.

4. Чтобы указать источник элемента для гибкого макета, см. раздел Привязываемые макеты . Это поддерживает ItemTemplateSelector.

5. ОБХОДНОЙ ПУТЬ: Посмотрите на github FlowListView , там есть скриншот того, что происходит с «сгруппированными элементами» и опцией «Развернуть»: при нечетном количестве элементов в группе последний элемент расширяется, чтобы заполнить строку. Таким образом, вы сделаете свой элемент шириной в два столбца последним в группе (или просто в группе отдельно). Я видел ответ в другом месте, в котором высота заголовка группы устанавливается равной нулю, чтобы скрыть эти заголовки.