#android #angular #layout #nativescript #radlistview
#Android #угловой #макет #nativescript #radlistview
Вопрос:
Я взял пример с деталями автомобиля для angular NativeScript, и я пытаюсь заставить список автомобилей прокручиваться горизонтально, а не вертикально. Я удалил большую часть данного html и просто стремлюсь создать список горизонтальной прокрутки с оставшимся html.
Я думаю, что проблема может быть в RadListView, но я не уверен, как с этим бороться. До сих пор я везде пробовал orientation=»horizontal», а также менял некоторые типы макетов. Я также пробовал orientation =»vertical» в RadListView, поскольку источник 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" height="120" 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" height="120" class="m-r-20"></Image>
</GridLayout>
</StackLayout>
</ng-template>
</RadListView>
<ActivityIndicator [busy]="Loading"></ActivityIndicator>
Комментарии:
1. Я изменил часть ng-template на следующую, и это сделало мое приложение пустым. Он не вернул никаких ошибок. Я не уверен, куда вы хотели, чтобы я это поместил. <ListViewLinearLayout tkListViewLayout scrollDirection=»Horizontal» let-car=»item» >
2. Предполагалось, что вы не меняете шаблон, а макет элемента, просто обратитесь к документам по указанной ссылке, у вас есть примеры.
3. Спасибо! Я понятия не имел, что он не должен был ничего инкапсулировать. Теперь он прокручивается вбок.