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)

test_ToolBarButton_on_Footer.html (3.0 KB) - added by Atsushi Ono 8 years ago.
android-flicker-workaround-revised.patch (3.2 KB) - added by Atsushi Ono 8 years ago.
[patch][ccla] Revised Android flicker workaround code which is the root cause of this issue.

Download all attachments as: .zip

Change History (9)

Changed 8 years ago by Atsushi Ono

comment:1 Changed 8 years ago by Atsushi Ono

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.

comment:2 Changed 8 years ago by ykami

Cc: Atsushi Ono added

comment:3 Changed 8 years ago by mepisguy

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.

Last edited 8 years ago by mepisguy (previous) (diff)

comment:4 Changed 8 years ago by Atsushi Ono

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 mepisguy

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 Atsushi Ono

[patch][ccla] Revised Android flicker workaround code which is the root cause of this issue.

comment:6 Changed 8 years ago by Atsushi Ono

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.

comment:7 Changed 8 years ago by ykami

Resolution: fixed
Status: newclosed

In [26682]:

Fixes #13889 !strict Applied onoat's patch to remove the android workaround in View.js. With this fix, the dissolve animation started flickering, but just removing z-index from dissolve.css solved the problem.

Note: See TracTickets for help on using tickets.