Corona的newScrollView隐藏滚动条但仍显示滚动条。

我像这样声明了一个 Scroll View:

sv = widget.newScrollView{
    top = properties.y,
    left = properties.x,
    width = properties.moreGamesPanelWidth,
    height = properties.height,
    scrollWidth = properties.moreGamesPanelWidth,
    scrollHeight = lg.contentHeight,
    hideBackground = true,
    isBounceEnabled = false,
    horizontalScrollDisabled = true,
    isLocked = lock,
    listener = widgetTouchListener,
    hideScrollBar = true,
}

不幸的是,无论我在 "hideScrollBar" 中设置什么,滚动条仍然可见。 有没有可能隐藏滚动条?

点赞
用户1925928
用户1925928

我发现了一个问题!

当你声明两个或更多的 scrollViews 时,问题就会发生。最后一个 scrollView 会覆盖“hideScrollBar”设置。因此没有选项可以有两个 scrollViews,一个带有滚动条,一个没有。

以下是用代码证明这个问题:

properties.lua

local properties = {}

-- 设备尺寸
properties.width = display.contentWidth + display.screenOriginX * -2
properties.height = display.contentHeight + display.screenOriginY * -2
properties.x = display.screenOriginX
properties.y = display.screenOriginY
properties.center = { x = properties.x + properties.width / 2, y = properties.y + properties.height / 2 }

return properties

main.lua

display.setStatusBar( display.HiddenStatusBar )

local properties = require("properties")
local widget = require("widget")

local sceneGroup = display.newGroup()

local lg = display.newGroup()
local lg2 = display.newGroup()

local bg = display.newRect(properties.center.x, properties.center.y, properties.width, properties.height)
bg:setFillColor(0.2, 0.2, 0.1)
sceneGroup:insert(bg)

local menuRect1 = display.newRect(100, 50, 200, 100)
menuRect1:setFillColor(0.8, 0.1, 0.1)
lg:insert(menuRect1)

local menuRect2 = display.newRect(100, 160, 200, 100)
menuRect2:setFillColor(0.1, 0.1, 0.9)
lg:insert(menuRect2)

local menuRect11 = display.newRect(100, 50, 200, 100)
menuRect11:setFillColor(0.8, 0.1, 0.1)
lg2:insert(menuRect11)

local menuRect22 = display.newRect(100, 160, 200, 100)
menuRect22:setFillColor(0.1, 0.1, 0.9)
lg2:insert(menuRect22)

local sv
local sv2

sv = widget.newScrollView{
    top = properties.center.y - lg.contentHeight * 0.5 - 100,
    left = properties.center.x - lg.contentWidth * 0.5,
    width = lg.contentWidth +20,
    height = lg.contentHeight -80 ,
    scrollHeight = lg.contentHeight,
    hideBackground = true,
    isBounceEnabled = false,
    hideScrollBar = true,
    horizontalScrollDisabled = true,
    isLocked = false,
}

sv2 = widget.newScrollView{
    top = properties.center.y - lg.contentHeight * 0.5 + 100,
    left = properties.center.x - lg.contentWidth * 0.5 ,
    width = lg.contentWidth +20,
    height = lg.contentHeight -80 ,
    scrollHeight = lg.contentHeight,
    hideBackground = true,
    isBounceEnabled = false,
    hideScrollBar = false,
    horizontalScrollDisabled = true,
    isLocked = false,
}

sv:insert(lg)
sv2:insert(lg2)

sceneGroup:insert(sv)
sceneGroup:insert(sv2)
2014-07-01 17:03:32
用户3173910
用户3173910

问题在于 Corona 的文档是错误的,设置滚动条可见性的属性不是 hideScrollBar = false,而是 autoHideScrollBar = false

让我困惑了好几天!

2016-10-12 08:43:59