#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
, там есть скриншот того, что происходит с «сгруппированными элементами» и опцией «Развернуть»: при нечетном количестве элементов в группе последний элемент расширяется, чтобы заполнить строку. Таким образом, вы сделаете свой элемент шириной в два столбца последним в группе (или просто в группе отдельно). Я видел ответ в другом месте, в котором высота заголовка группы устанавливается равной нулю, чтобы скрыть эти заголовки.