Opened 8 years ago
Closed 8 years ago
#13889 closed defect (fixed)
ToolBarButton in Footer not clickable with ScrollableView and Android 2.2 or 2.3
Reported by: | mepisguy | Owned by: | ykami |
---|---|---|---|
Priority: | high | Milestone: | 1.7 |
Component: | DojoX Mobile | Version: | 1.7.0b1 |
Keywords: | Cc: | Atsushi Ono | |
Blocked By: | Blocking: |
Description
This problem only occurs with Android 2.3 and 2.3 when a main View contains a ScrollableView? and has a ToolBarButton? in a Footer. The button in the footer is not clickable. The button works with other platforms and with Android 2.1 or 3.2. This problem occurs with 1.7b5 and with SVN as of today. I don't know if it occurred with earlier versions.
This is my first ticket. Sorry if I did something wrong...
Attachments (2)
Change History (9)
Changed 8 years ago by
Attachment: | test_ToolBarButton_on_Footer.html added |
---|
comment:1 Changed 8 years ago by
comment:2 Changed 8 years ago by
Cc: | Atsushi Ono added |
---|
comment:3 Changed 8 years ago by
Thanks for the quick response.
You are using this view hierarchy which does appear to work correctly:
scrollableview
header view footer
I am using this view hierarchy which does not work correctly:
view
header scrollableview footer
In a more complex case I do the following, which does not work correctly in Android, and which does not scroll correctly if a scrollview is substituted for the root view:
view
header tabbar scrollableview footer
Your code is a fine solution in the simple case, but not for the more complex cases I'm coding.
comment:4 Changed 8 years ago by
Thanks for your examples. I'm interested in hearing about the complex use cases. How about moving the footer to application level as below? Application level footer is often used to switch top level views as below, but doesn't this suit for you case?
View1
header
tabbar (for switching ScrollableView1, ScrollableView2)
ScrollableView1
ScrollableView2
View2
footer or tabbar (application level, for switching view1, view2)
Or how about moving just the footer to inside of ScrollableView as view local footer? Doesn't this suit your case either?
(Just for your information, view transitions can be done just between sibling views, so please take care not to make too complex structure to transition.)
comment:5 Changed 8 years ago by
The app is designed to use different footers for different pages, so a common footer doesn't fit.
Putting the footer inside the switchable scrollview does not work because the footer displays at the top, even though it is fixed to the bottom.
However, I tried a new variation that appears to workaround the problem:
view
header
tabbar
view1
scrollableview
edgetoedgelist
footer
So I think I'm good to go for now.
Changed 8 years ago by
Attachment: | android-flicker-workaround-revised.patch added |
---|
[patch][ccla] Revised Android flicker workaround code which is the root cause of this issue.
comment:6 Changed 8 years ago by
I have investigated this issue and found that it is the side effect of Android flicker workaround code (#12723). I have reconsidered the Android flicker workaround code, and found that the recent changes around transition animations (#13812) have improved the original flicker issue so that we can remove the portion of Android flicker workaround code in dojox.mobile.View which was the root cause of this issue.
However, simply removing the workaround code in dojox.mobile.View causes the other side effect that domButtons are sometimes broken when -webkit-transform:translate3d(x,y,z) style is set to their non-ancestor nodes which results in invalidating domButtons' -webkit-transform styles. To avoid this, I have added the new code to set -webkit-transform:translate3d(0,0,0) to domButtons initially.
I created a simple test case attached above and tried it with Android 2.3 (Nexus S), but I could not reproduce the issue. All buttons on footer inside of ScrollableView were clickable. It also worked fine when I moved the footer to outside of ScrollableView. Could you please add the additional information and, if possible, attach a simple sample to reproduce this issue? Thanks.