如何在列表中的文本下方添加一行?我使用的是nativescript,但如果有一种方法可以按角度进行,那也可以。
在我的Nativescript(角度)应用程序中,我有一个使用RadListView的列表。当我单击每个列表项中的文本时,文本将展开。有时,较大的文本会转到下一行。这是一个问题,因为RadListView不允许调整文本周围的容器的大小(在iOS上)。
因此,当文本移至下一行时,它将被隐藏。
如果每个列表项中的文本下方都有多余的一行,我可以解决此问题。这样,如果文本溢出,它将直接进入下一行。
但是我该怎么做?
文本长度会有所不同,因此必须以某种方式动态完成。
示例:
<RadListView [items]="textArray" iosOverflowSafeArea="false">
<ng-template tkListItemTemplate let-item="item">
<StackLayout iosOverflowSafeArea="false">
<StackLayout style="border-width: 2; border-color: black">
<Label [text]="item.text" textWrap="true" (tap)="makeTextBigger()"></Label>
</StackLayout>
</StackLayout>
</ng-template>
</RadListView>
//currently, text will be hidden if it gets bigger and overflows to the next line
答案 0 :(得分:0)
这是iOS的局限性,除非提出要求,否则它不会中继单元。 Here是一种解决方法。
var indexPaths = NSMutableArray.new();
indexPaths.addObject(NSIndexPath.indexPathForRowInSection(rowIndex, event.groupIndex));
listView.ios.reloadItemsAtIndexPaths(indexPaths);
上面的代码强制列表视图单元重新布局。
答案 1 :(得分:0)
如果您不想使用forceLayout解决方案,则需要以Label的高度进行游戏。我为您here更新了一个游乐场。
<Label [text]="country.name" class="list-group-item-heading" height="100" textWrap="true" verticalAlignment="center" style="width: 60%"></Label>
ng0template中的 Label
具有预定义的高度100
,因此在tal上,当文本变大时,不需要重新播放,并且textWrap在这里工作得很好。