Copy link to clipboard
Copied
On a mobile AIR app I have created, the dropdown lists that I use are crazy sensitive, especially on iOS. When I scroll a list, 90% of the time, when I lift my finger while scrolling, it selects whatever my finger was on when the scrolling began. I feel I should have to tap whatever I want to select after I am done scrolling. This makes it almost unuseable and very distracting as the lists is closing all the time every time I lift my finger. Am I perhaps using the wrong skin for a mobile device? If not, is there a better alternative to dropdownlist for mobile? Has anyone else run into this sensitivity issue?
Thx!
Copy link to clipboard
Copied
After experimenting, I have found that the flatspark DropDownListSkin works FAR better than the default spark skin functionally, but I can't get it to look even remotely the way that I need. The color is wrong and can only be set to a few defaults, the text is teeny tiny and does not respond to fontSize CSS rules.
In a little more detail, if I just flick the dropdownlist up or down, it scrolls fine and does not automatically select anything. But if I touch the list and slowly scroll my finger up or down and then lift my finger off of the list, it automatically selects where my finger last touched and closes. Every. Single. Time.
Surely someone else has used a dropdownlist on a mobile device. How did you handle this??
Copy link to clipboard
Copied
What you need to do is remove the listener if list is scrolling. I found a great example, I don’t know if the dev is even supporting it anymore though( meaning making avaiIable anymore. ) I can help you with that but won’t be able to until this coming week due to work.
Copy link to clipboard
Copied
4morrone, this sounds like a very interesting idea. I like it a lot! I'm not particularly strong at extending components, so any help you could provide would be enormously appreciated. Please try to remember to come back, or I'll try to reach out to you early in the week, and see if we can modify this. I am getting ready to submit my app to the app store, and this is the last box that I have to check off! Thanks for the suggestion!
Copy link to clipboard
Copied
Extending components is very easy when using Flash Builder, it's actually integrated in the menus. Not sure how to do it if you are using something else. I personally have been using my own list system for years since flex was not compatible with mobile but I'm guessing they did improve the system in Apache Flex. If you are not using Apache Flex I suggest you take a look since they probably do offer a fully mobile compatible component system.
Copy link to clipboard
Copied
Thanks for the reply ASWC. I am currently using Apache Flex 4.16.1 and AIR 28, so I am pretty much up to date on all of the latest components available. And I do know how to extend a component using the menus as you suggest. I am really good at creating mxml components and controlling their behavior with actionscript. What I am not good at is pure actionscript, so inspecting existing components and knowing where to find listeners and understanding how properties are instantiated and used, understanding how to override functions to get the behavior you are looking for, etc. I guess you could say that I am really good at using what already exists, and weak at creating content that doesn't. I would definitely need direction to modify a dropdownlist appropriately.
Copy link to clipboard
Copied
Then work with the as3 (flex) docs and find the component you extended there and you'll see all the properties and methods it uses and all events it does dispatch and of course including all the inherited ones. Then in Flash Builder (you might already know that) with your extended component class open you can go to 'source' > 'override/implements methods' and override the methods/setter/getter you need. Add code to it to extends functionality, remove the super.xxxx call to turn off the method, or remove the super.xxx call and add your own code.
Copy link to clipboard
Copied
Thanks for the direction. I will give it a shot!