IBM Worklight 6.1 - Dojo Back按钮未调整为设备方向

时间:2014-03-03 21:14:56

标签: android dojo ibm-mobilefirst

使用运行Android 4.3的Nexus 7平板电脑。

在我的应用程序中,Main视图顶部有两个标签栏按钮,底部有三个标签栏按钮。设备处于纵向模式。

选择按钮时,视图成功转换。新视图定义了后退按钮 如果将设备旋转为横向然后选择后退按钮,则当转换回Main视图完成时,View(按钮)将显示为设备仍处于纵向模式(已移位)左)。

如果我将设备旋转回横向并再次回到纵向,则视图会更正。

问题:

  1. 当选择“后退”按钮时,设备+浏览器是否已针对方向更改进行了调整,或者是应用程序的责任?
  2. 如果是应用程序的责任,请提供有关阻止此支持的最佳做法的建议吗?
  3. 注意:更改方向时I have another question relating to the centering of tabbar buttons。没有选择按钮。这篇文章导致了一个dojo缺陷被打开,建议的解决方案消除了这个问题。 “Tabbar固定:底部。按钮从纵向转换为横向后略微向右移动”我的感觉是两个场景相关,因为这个新场景通过旋转设备来纠正自身。

3 个答案:

答案 0 :(得分:0)

处理方向更改的最佳方式(IMO)是通过RWD(Responsive Web Design),更具体地来说CSS3 Media Queries来根据屏幕宽度重新定位布局。这比为方向更改事件注册回调要快得多。

然而,一些复杂的Dojo小部件(如Charting)将无法正确响应媒体查询,需要方向更改事件来强制小部件调整大小。

更具体地解决您的问题:

  1. 如果您正确使用媒体查询,视图布局将根据设备方向进行相应调整,但某些复杂的小部件将需要方向更改事件以强制重绘
  2. 我建议您查看IBM Worklight Best Practices for mobile app development,其中包括此主题。
  3. 我希望这些信息对您有所帮助。

答案 1 :(得分:0)

我们做的不是确保所有组件都正确的做法是在转换后运行调整大小。

dojo.subscribe("/dojox/mobile/afterTransitionIn", afterTransitionIn);

function afterTransitionIn(view, moveTo, dir, transition, context, method) {
     currentView = view;
     currentView.resize();
}

答案 2 :(得分:0)

我认为这可以作为我的情况可以接受的解决方案,但根据预期的外观可能不适合其他人。我尝试了上面的两个建议,调整大小和CSS,但结果没有变化。我发现通过添加额外的proprtrty“fill”,它会在方向更改期间将焦点带到tabbar,并更正视图。我已经和一些道场专家交谈了,并且已经提交了一个bug供审查。

data-dojo-props =“barType:'segmentedControl',填充:'always'”