混合应用程序不显示滚动条

Posted

技术标签:

【中文标题】混合应用程序不显示滚动条【英文标题】:Hybrid application not showing scroll bar 【发布时间】:2014-09-03 21:56:41 【问题描述】:

我的 WL6.1.0.1 混合应用程序有一个溢出(将 css 设置为 -webkit-overflow-scrolling: touch)滚动得很好,但我没有看到滚动条,也没有看到我点击时的 android 反馈卷轴的底部(android 拥有的那种发光的光)。

奇怪的是,如果我使用 Android 设备上的 chrome 浏览器通过“公共资源”访问同一个应用程序,滚动条和反馈都会显示。

我将以下代码添加到本机端的主 java 类(扩展 WLDroidGap 并具有应用程序名称的类)

public void onWLInitCompleted(Bundle savedInstanceState)
    super.loadUrl(getWebMainFilePath());
    // Add custom initialization code after this line
    this.appView.setVerticalScrollBarEnabled(true); 
    this.appView.setVerticalScrollbarOverlay(true);

但它仍然不起作用,有什么想法吗?

【问题讨论】:

使用实际应用程序可能更容易调试。您能否创建一个仅复制这一问题的测试用例应用程序? 这说明了问题:drive.google.com/file/d/0B8lqvS9F1fUSR1YxcUN5VTNOQTA/… 我可以在这里复制它。 @Leandro,感谢您的应用程序。看我的回答。 【参考方案1】:

对于“反馈”,您可能指的是EdgeEffect(到达视图底部时)。如果是这样,它对我来说是这样的:

public void onWLInitCompleted(Bundle savedInstanceState)
    super.loadUrl(getWebMainFilePath());
    // Add custom initialization code after this line
    this.appView.setOverScrollMode(appView.OVER_SCROLL_ALWAYS);

您也可以在onCreate 中设置它...

为了显示滚动条,我认为您需要结合使用awakenScrollBars() 和setVerticalScrollBarEnabled

也就是说,我不知道您的应用程序的用例,但通常在应用程序中您不希望滚动条,除非专门在列表或类似的东西中(甚至可能不那里...)。

此外,由于您正在 Worklight 中开发混合应用程序并且可能针对其他环境,因此可以使用替代解决方案而不是深入研究本机代码,例如使用 iScroll,它不仅可以处理滚动,还可以处理“反弹”效果和其他东西。

【讨论】:

以上是关于混合应用程序不显示滚动条的主要内容,如果未能解决你的问题,请参考以下文章

滚动条在 jquery 移动应用程序中不可见

UIScrollView 无法正常工作(它返回顶部并且不显示任何滚动条

在winform中,如何为DatagridView设置横向滚动条

RichTextBox 滚动条在某些 PC 上不显示

如何在phonegap中隐藏ios滚动条

C# 滚动条问题