将方向更改为“水平”不会更改 RadListView 的滚动方向?

Posted

技术标签:

【中文标题】将方向更改为“水平”不会更改 RadListView 的滚动方向?【英文标题】:Changing orientation to 'horizontal' is not changing the scroll direction of RadListView? 【发布时间】:2019-08-30 10:27:01 【问题描述】:

我已经为 angular NativeScript 采用了汽车详细信息示例,并且我正在尝试使汽车列表水平滚动而不是垂直滚动。我已经删除了大部分给定的 html,只是想用剩余的 html 制作一个水平滚动列表。

我认为问题可能是 RadListView,但我不确定如何处理它。到目前为止,我已经到处尝试了orientation="horizo​​ntal",并且还更改了一些布局类型。我还在 RadListView 上尝试了orientation="vertical",因为NativeScipt 消息来源说这会起作用......我对Nativescript 很陌生,所以我希望这是一个简单的修复,因为我没有找到任何东西那会有所帮助。

这是我项目的 html 部分。整个东西被封装在一个水平方向的 StackLayout 中。如果您想看其他内容,请告诉我:

<RadListView orientation="horizontal" [items]="cars" (itemTap)="onCarItemTap($event)" >

    <ng-template tkListItemTemplate let-car="item" >

            <StackLayout orientation="horizontal">

                    <GridLayout rows="*, *, *" columns="*, *"  backgroundColor="purple">
                        <Label [text]="car.name" class="text-primary font-weight-bold"></Label>

                        <Image row="2" [src]="car.imageUrl" stretch="aspectFill"  class="m-r-20"></Image>
                    </GridLayout>

            </StackLayout>

    </ng-template>

</RadListView>

<ActivityIndicator [busy]="Loading"></ActivityIndicator>

目前,即使到处都是水平的,我也会得到一个垂直列表,其中每个项目都是汽车名称和汽车图片。但我希望下一个项目向右而不是向下填充。

【问题讨论】:

【参考方案1】:

您应该使用ListViewLinearLayout 并将它的scrollDirection 设置为Horizontal

<RadListView orientation="horizontal" [items]="cars" (itemTap)="onCarItemTap($event)" >

    <ListViewLinearLayout tkListViewLayout scrollDirection="Horizontal"></ListViewLinearLayout>

    <ng-template tkListItemTemplate let-car="item" >

            <StackLayout orientation="horizontal">

                    <GridLayout rows="*, *, *" columns="*, *"  backgroundColor="purple">
                        <Label [text]="car.name" class="text-primary font-weight-bold"></Label>

                        <Image row="2" [src]="car.imageUrl" stretch="aspectFill"  class="m-r-20"></Image>
                    </GridLayout>

            </StackLayout>

    </ng-template>

</RadListView>

<ActivityIndicator [busy]="Loading"></ActivityIndicator>

【讨论】:

我将 ng-template 部分更改为以下内容,它使我的应用程序变为空白。它没有返回任何错误。我不确定你想让我把它放在哪里。 您不应该更改模板,而是更改项目布局,只需参考给定链接中的文档,您就有示例。 谢谢!我不知道它不应该封装任何东西。它现在横向滚动。

以上是关于将方向更改为“水平”不会更改 RadListView 的滚动方向?的主要内容,如果未能解决你的问题,请参考以下文章

当我将滚动方向从垂直更改为水平时,为啥集合视图会崩溃?

将 ag-grid 的方向更改为 RTL

将方向从垂直更改为倒置时更改控制器的颜色

DataGridViewComboBoxColumn 值更改不会将 RowState 更改为已修改

更改 CSpinButtonCtrl 的样式

UICollectionViewScrollDirectionHorizo​​ntal:如何将顺序从上下更改为左右