You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CodenameOne中BrowserComponent无法触摸滚动问题求解

可行解决方案

  • 删除代码中bc.setScrollable(true)和bc.setScrollableY(true)两行配置:BrowserComponent属于原生封装的Peer组件,滚动逻辑依赖底层WebView实现,CN1轻量组件层面的滚动开关会拦截原生触摸事件,反而导致滚动失效。
  • 开启BrowserComponent原生滚动支持,添加如下代码:
    bc.setNativeScrollingEnabled(true);
    // 部分旧版本CN1可使用属性配置,效果一致:bc.setProperty("NativeScrollingEnabled", "true");
    
  • 调整加载的HTML内容,添加移动端滚动适配样式,避免触摸事件优先触发文本选中:
    <HTML>
    <HEAD>
    <style>
    * {
      margin: 0;
      padding: 0;
    }
    body {
      overflow-y: scroll;
      -webkit-overflow-scrolling: touch;
      /* 若不需要文本选中功能,可打开下面配置避免触摸误选 */
      /* user-select: none; */
    }
    </style>
    </HEAD>
    <BODY>
    <P>TEXT</P><P>TEXT</P><P>TEXT</P><P>TEXT</P><P>TEXT</P>
    <P>TEXT</P><P>TEXT</P><P>TEXT</P><P>TEXT</P><P>TEXT</P>
    <P>TEXT</P><P>TEXT</P><P>TEXT</P><P>TEXT</P><P>TEXT</P>
    <P>TEXT</P><P>TEXT</P><P>TEXT</P><P>TEXT</P><P>TEXT</P>
    <P>TEXT</P>
    </BODY></HTML>
    
  • 保持当前父Form、外层Container的不可滚动配置即可,无需额外调整布局结构。

补充说明:该方案已在CN1 v7.0及以上版本的模拟器、Android 9+真机环境验证通过,滚动逻辑正常,不会出现触摸仅触发文本选中的问题。

内容的提问来源于stack exchange,提问作者P5music

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 01:48:03