没有在Corona SDK中得到适当的滚动视图。

我在查看记分板时出现了问题。我正在给我的scrollview和其中的内容提供初始值。当我最初打开我的记分板时,内容显示在正确的位置,但当我向下滚动然后向上滚动时,它不会回到初始位置。 请检查所附的记分板视图的截图。有人可以告诉我在这种情况下应该怎么做吗?

提前致谢。

local function scrollListener( event )
    local phase = event.phase
    if phase == "began" then
        print( "Scroll view was touched" )
        for key,value in pairs(event) do
            print("pranav",key,value)
        end

    elseif phase == "moved" then
        --print( "Scroll view was moved" )
        print("over",event.x)

        if(event.x>414)then
            event.x=358
        end

    elseif phase == "ended" then
        print( "Scroll view was released" )
        print("ended",event.x)
    end

    -- In the event a scroll limit is reached...
    if event.limitReached then
        if event.direction == "up" then
            print "Reached top limit"
        elseif event.direction == "down" then
            print "Reached bottom limit"
        elseif event.direction == "left" then
            print "Reached left limit"
        elseif event.direction == "right" then
            print "Reached right limit"
        end
    end

    return true
end

scrollView = widget.newScrollView
{
    top = 200,
    left = 250,
    width = 500,
    height = 400,

    scrollWidth = 500,
    scrollHeight = 10,

    topPadding = 0,
    bottomPadding = 0,
    leftPadding = 0,
    rightPadding = 0,

    friction = .972 , -- how fast the scroll view moves.  default is .972

    hideBackground = true, -- if true it wont show the background color.
    horizontalScrollDisabled = true,
    verticalScrollDisabled = false,

    listener = scrollListener,
}

滚动之前的记分板初始视图

向下滚动一次,然后再向上滚动后的视图

点赞
用户869951
用户869951

这里缺失了代码,展示了内容添加,也就是说,只有你问题中的代码是无法重现问题的。已发布代码的一个问题是 heightscrollHeight

你的滚动文本 height 应该是屏幕上的高度; 它的 scrollHeight 应该是“虚拟高度”,即小部件如果没有可滚动性则可以占用的总高度。 因此, scrollHeight 必须足够大,以显示您在其中插入的所有显示对象,而 height 只是您想要显示的“窗口”(部分)。 同样适用于 widthscrollWidth,但您目前没有使用水平滚动条,因此现在不需要担心。

此外,我找不到有关填充属性(如 topPadding 等)的任何参考资料,但是拥有它们不会对我造成任何问题。

我在你的代码后添加了以下内容:

local function createText(text, y)
    local scrollText = display.newText {
        text=text, y=y, font=native.systemFont, fontSize=20 }
    scrollText.anchorX = 0
    return scrollText
end
scrollView:insert(createText("Hi",    10))
scrollView:insert(createText("Bye",   30))
scrollView:insert(createText("Hello", 50))
scrollView:insert(createText("Hi",    70))
scrollView:insert(createText("Bye",   90))
scrollView:insert(createText("Hello", 110))
scrollView:insert(createText("Hi",    130))
scrollView:insert(createText("Bye",   150))
scrollView:insert(createText("Hello", 170))

当使用以下内容创建时:

scrollView = widget.newScrollView
{
    ...

    width = 200,
    height = 100, -- 您想要查看的可滚动区域的一部分

    scrollWidth = 200,
    scrollHeight = 200,--完整的内容区域

    ...
}

(仅展示与您的代码的不同)它可以很好地工作。换句话说,交换 heightscrollHeight 的值。

2014-03-29 12:02:54