类型 函数 库 widget.* 返回值 数字 修订版本 版本 2024.3703 关键词 widget, 滚动视图, ScrollViewWidget, takeFocus 另请参阅 widget.newScrollView() ScrollViewWidget
如果在滚动视图中有一个带有触摸监听器的对象,例如 ButtonWidget,您应该在该对象触摸监听器的 "moved"
阶段调用此方法,并将触摸事件的 event
表作为此方法的唯一参数。这将把焦点返回给滚动视图,使其能够继续滚动。
object:takeFocus( event )
表. 对象触摸侦听器函数中的 event
表。
local widget = require( "widget" ) local scrollView = widget.newScrollView { top = 100, left = 10, width = 300, height = 400, scrollWidth = 600, scrollHeight = 800, horizontalScrollDisabled = true } -- The touch listener function for the button (created below) local function handleButtonEvent( event ) local phase = event.phase if ( phase == "moved" ) then local dy = math.abs( ( event.y - event.yStart ) ) -- If the touch on the button has moved more than 10 pixels, -- pass focus back to the scroll view so it can continue scrolling if ( dy > 10 ) then scrollView:takeFocus( event ) end end return true end local button1 = widget.newButton { left = 100, top = 200, id = "button1", label = "Default", onEvent = handleButtonEvent } scrollView:insert( button1 )