codenameone - 如何将多个容器绑定在一起?
问题描述
我的容器布局如下图所示。
该页面有两个容器,即第一个容器包含句点结尾:及其下方的所有内容,第二个容器是包含句点和值的容器。
我的问题在第二个容器上。它内部有多个具有 BoxLayout.x() 布局的容器,每个容器都可以沿 x 轴滚动。所以我需要帮助的是,我想绑定所有这些容器,这样当我沿 x 轴滚动时,它们都会一起滚动。
解决方案
使用Container.addScrollListener()
它们中的每一个来绑定一个监听器。当一个人移动时,您需要触发其他人。这是我没有测试的样机代码,但它应该给你的想法。请注意,scrollingOwner 变量旨在阻止递归,但它可能还不够,可能需要更加激进。
for(cnt : contaienrs) {
cnt.addScrollListener((scrollX, scrollY, oldscrollX, oldscrollY) -> {
if(scrollingOwner != cnt) {
return;
}
scrollingOwner = cnt;
for(cnt2 : containers) {
if(cnt2 != scrollingOwner) {
cnt2.scrollRectToVisible(scrollX, scrollY, scrollingOwner.getWidth(), scrollingOwner.getHeight(), cnt2);
}
}
scrollingOwner = null;
});
}
推荐阅读
- c# - 如何通过变量引用修改控件属性
- c# - 我想在我的 PDF 文件下载后显示一个模式弹出窗口
- python - 创建一个带有变量名的表(sqlite3)
- c# - .Net-Core 内置授权代码流
- liquibase - Liquibase:如何在解析时为列生成值
- javascript - 如何在javascript中获取父母的孩子的价值
- php - PHP替换未知深度的多维数组中的元素
- bash - 为什么我不能将 inputrc 中的 \Ce 设置为 vi 命令键盘映射的行尾?
- php - 如何在不使用输入获取值的情况下将数据发送到数据库?
- javascript - JavaScript 连接数组中相同的相邻元素