2014-03-28 61 views
2

我在記分牌查看中遇到問題。我在滾動視圖中給我的滾動視圖和內容賦予初始值。當我開始打開計分板時,內容顯示在正確的位置,但是當我將它滾動然後向上滾動時,它並沒有達到其初始位置。 請檢查記分牌視圖的附件截圖。任何人都可以告訴我在這種情況下該做什麼?在Corona SDK中沒有得到正確的滾動視圖

在此先感謝。

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, 
} 

Initial View of score board before scrolling

After Once scrolling down and then scrolling up

+0

代碼太多。請刪除所有不直接相關的代碼(刪除代碼後不會刪除問題的代碼)。 – Schollii

+0

我已經刪除了不相關的其他代碼行。請立即檢查。 –

+0

確定這是好多了,但你刪除了一些太多:)以上是不足以重現該問題:您需要添加內容到視圖。我在我的回答中假設你如何做到這一點。 – Schollii

回答

0

顯示內容增加,即只有在你的問題的代碼的問題,這是缺少代碼不能被複制。發佈代碼的一個問題是height vs scrollHeight

您的滾動文本height應該是屏幕上的高度;它的scrollHeight應該是「虛擬高度」,即小部件在不可滾動時將佔用的總高度。因此scrollHeight必須足夠大以顯示您插入其中的所有顯示對象,而height只是您要顯示的「窗口」(部分)。 width vs scrollWidth也是如此,但是您不使用水平滾動,因此現在不需要考慮。

此外,我找不到任何引用填充屬性(topPadding等),但讓他們沒有對我造成任何問題。

我加了你的代碼之後執行以下操作:當

scrollView = widget.newScrollView 
{ 
    ... 

    width = 200, 
    height = 100, -- portion of scrollable area you want to see 

    scrollWidth = 200, 
    scrollHeight = 200, -- complete content area 

    ... 
} 

(從你的代碼只是shoing差異)它工作得很好創建

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)) 

。即,交換heightscrollHeight值。

+0

我嘗試了你的建議,但它仍然給出同樣的問題。由於我正在向scrollview中的內容賦予「topvalue」,所以在向下滾動然後向上滾動後,滾動視圖的值不會相同。 –

+0

@ Akshada-Systematix然後,您只能選擇創建一個獨立的示例:使用展示問題的滾動視圖中的某些內容擴展您發佈的代碼,以便將其複製到我的日冕中並對其進行測試。注意:更新你的問題,不要發佈鏈接到鍵盤或任何其他。 – Schollii