How to present a picklist on mobile?

Devin Asay devin_asay at byu.edu
Wed Feb 20 11:29:00 EST 2013


On Feb 20, 2013, at 2:25 AM, Ben Rubinstein wrote:

> On 11/02/2013 18:13, Devin Asay wrote:
>> I'd recommend following Elanor's excellent native scroller tutorial in the latest RevUP newsletter for your list. Once you've wrapped your head around mobile-native controls I think you'll see that they're not difficult, and they go a long way to taking the "clunk" out of your mobile apps.
>> 
>> http://www.runrev.com/newsletter/february/issue148/newsletter4.php
> 
> Thanks Devin (and Elanor), and what a timely article!  That certainly gets me most of the way there.
> 
> I noticed that on Elanor's sample stack, although the field scrolls nicely with inertia, and a bounce-back at the bottom, there's no bounce-back at the top.  Is this a known limitation?
> 

No, you can build bounce in at the top, too. 

Here's a script from a card that has a native scrolling field, and it bounces on both ends. I seem to remember that I had to build in some blank space in the enclosing group (or was it in the field itself?) to allow for bounce.

local sScrollerID

on preOpenCard
    initCard
end preOpenCard

on closeCard
    if the environment is "mobile" then
        # delete the control before leaving the card
        iphoneControlDelete sScrollerID
    end if
end closeCard

on initCard
    set the height of fld "longtext" to the formattedHeight of fld "longtext"
    set the vScroll of group "textGrp" to 0 # scroll to top of text to begin with
    if the environment is "mobile" then
        set the layerMode of group "textGrp" to "scrolling"
        set the vScrollbar of group "textGrp" to false
        set the unboundedVScroll of group "textGrp" to true # allows out-of-bounds-scrolling 
        
        iphoneControlCreate "scroller", "textScroller"
        put the result into sScrollerID
        
        put the rect of group "textGrp" into tScrollerRect
        put the rect of fld "longText" into tContentRect
        
        # set various properties of the scroller
        iphoneControlSet "textScroller", "rect", tScrollerRect # the size of the scroll area
        iphoneControlSet "textScroller", "contentRect", tContentRect # the size of the scrolled content
        iphoneControlSet "textScroller", "visible", true
        iphoneControlSet "textScroller", "canBounce", "true"
        iphoneControlSet "textScroller", "scrollingEnabled", "true"
        iphoneControlSet "textScroller", "indicatorStyle", "black"
        iphoneControlSet "textScroller", "vIndicator", "true"
        iphoneControlSet "textScroller", "pagingEnabled", "false"
        iphoneControlSet sScrollerID, "vScroll", "0"
    else
        set the vScrollbar of group "textGrp" to true
    end if
end initCard

on scrollerDidScroll pOffsetX, pOffsetY
   -- Set the scroll values of the group based on feedback from the scroller
   -- notice that we can just use the values directly and because out-of-bounds
   -- scrolling is enabled for the group, the bounce effect needs no extra
   -- code.
   lock screen
   set the vScroll of group "textGrp" to pOffsetY
   unlock screen
end scrollerDidScroll

HTH

Devin

Devin Asay
Office of Digital Humanities
Brigham Young University





More information about the use-livecode mailing list