ScrollView 或 NewText 不是无限制的

我正在为我的应用程序制作更改日志,并在display.newText中插入了大量文本。display.newText可以接受多少个字符或者它是ScrollView的问题?我的代码:

local widget = require"widget")
    scrollView = widget.newScrollView
    {
        hideBackground = true,
        hideScrollBar = true,
        left = 0,
        top = 170,
        width = display.contentWidth,
        height = contH-300,
        topPadding = 150,
        bottomPadding = 20,
        horizontalScrollDisabled = true,
        verticalScrollDisabled = false,
    }

ChangeLogText = [[ ... 这里有大量的文本 ... ]]

ChangeLog = display.newText(ChangeLogText,contW / 24730,contW-1000"Fonts/visitor1.ttf"40)
scrollView:insert(ChangeLog)

我可以看到大约164行文字,但它就此停止了... 是否有办法使它无限制?

点赞
用户3503463
用户3503463

我最近也遇到了同样的问题 - 很遗憾这样的限制在 API 中没有详细说明。

我开始使用 [这个 Github 仓库] (https://github.com/coronalabs/framework-widget/tree/master/widgetLibrary),这个仓库包含了 Corona SDK 的完整小部件库(AFAIK 不再开发),但是我什么都找不到。

最终我采用的解决方法是,只从插入到文本显示对象中的文本的第一部分开始,然后使用 scrollView [scrollListener](https://docs.coronalabs.com/api/library/widget/newScrollView.html#basic-scrollview)每当达到顶部/底部限制时重新加载文本。

scrollListener 的一部分(event.direction ==“ up”基本上是它的镜像):

elseif ( event.direction == "down" ) then
 --检查是否达到或接近限制,y 来自 scrollView:getContentPosition(),-800 是任意的。
 if ( event.limitReached ) or y > - 800 then print(“达到顶部限制”)
 --firstS 存储字符串的第一个可见标志的数量
 if chat.firstS > 1 then
 --复制字符串
 local shownText = stringText
 --更新显示对象
 chat.text = shownText

 local firstS, lastS 

 --做当显示对象太高时 - 我发现 scrollView 停止滚动 ~25000 高度
 while (chat.height)> 24000 do 
 --基本上将文本减半
 firstS = chat.firstS-#shownText / 4
 if firstS <1 then firstS = 1 end
 lastS = firstS +#shownText / 2

 shownText = string.sub(stringText,firstS,lastS) 
 chat.text = shownText

 end

 chat.firstS = firstS 
 chat.lastS = lastS 
 --在没有时间的情况下滚动到中间位置,以实现无缝过渡
 mainView:scrollToPosition({y = -(chat.height)/ 2time = 0})

 end
 end

这是一个初步版本,需要一些完善,但我希望它有所帮助。如果您找到更好的解决方案,请告诉我。另外,我从底部显示文本,所以您可能需要相应地调整它。

2016-03-25 18:32:32