проблема прокрутки списка в android 9.0 - xamarin.forms - PullRequest
0 голосов
/ 09 января 2020

Я пытаюсь создать пользовательский интерфейс чата в своем приложении xamarin.forms. Я следовал этому руководству Пользовательский интерфейс чата Xamboy . Ссылка на github Пример .

В этом учебном пособии по достижению пользовательского интерфейса чата они повернули основной макет ListView и ViewCells на 180 градусов, чтобы список начинался снизу.

Xaml

 <Grid RowSpacing="0" 
       ColumnSpacing="0">
    <Grid.RowDefinitions>
        <RowDefinition Height="*" />
        <RowDefinition Height="1" />
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <controls:ExtendedListView Grid.Row="0" 
             ItemTemplate="{StaticResource MessageTemplateSelector}" 
             ItemsSource="{Binding Messages}" 
             Margin="0"                
             ItemTapped="OnListTapped"
             Rotation="180" 
             FlowDirection="RightToLeft"                               
             HasUnevenRows="True" x:Name="ChatList"
             VerticalOptions="FillAndExpand" 
             SeparatorColor="Transparent"
             ItemAppearingCommand="{Binding MessageAppearingCommand}"
             ItemDisappearingCommand="{Binding MessageDisappearingCommand}">
     </controls:ExtendedListView>
    <BoxView HorizontalOptions="FillAndExpand"
             HeightRequest="1"
             BackgroundColor="#61427D"
             Grid.Row="1"/>
    <partials:ChatInputBarView Grid.Row="2"
                               Margin="0,0,0,0"
                               x:Name="chatInput"/>
</Grid>

Это работало до android 8.0. Но в android 9.0 прокрутка чата застревает и прокручивается в неправильном направлении. Как я могу решить это. Есть ли лучшее решение для реализации пользовательского интерфейса чата в формах xamarin? Любая помощь приветствуется.

Редактировать: я удалил вращение listview и последовал за этим репо. Monkeychat Что сработало нормально.

Ответы [ 2 ]

1 голос
/ 09 января 2020

Вы можете использовать список в нормальных градусах и изменить ориентацию списка с c#.

Попробуйте что-то вроде этого:

 var list = your message list;
 new ObservableCollection<Model of your list>(list.OrderByDescending(x => 
 x.yourObjectDateTime).ToList());

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

1 голос
/ 09 января 2020

Об этой ошибке сообщается в github xamrin.forms, поэтому go через нее помогает https://github.com/xamarin/Xamarin.Forms/issues/7166.

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