Codenameone SwipeableContainer不';无法在Android上正常工作
我对SwipeableContainer有一个问题,这个问题只发生在Android上 我是这样说的:Codenameone SwipeableContainer不';无法在Android上正常工作,codenameone,Codenameone,我对SwipeableContainer有一个问题,这个问题只发生在Android上 我是这样说的: this.buttonRemoveExam = new Button(); this.buttonRemoveExam.getAllStyles().setPadding(0, 0, 0, 0); this.buttonRemoveExam.getAllStyles().setMargin(0, 0, 0, 0); this.buttonRemoveExam.setIcon(REMOVE); t
this.buttonRemoveExam = new Button();
this.buttonRemoveExam.getAllStyles().setPadding(0, 0, 0, 0);
this.buttonRemoveExam.getAllStyles().setMargin(0, 0, 0, 0);
this.buttonRemoveExam.setIcon(REMOVE);
this.buttonRemoveExam.setPressedIcon(REMOVE_PRESSED);
this.containerTop = new Container(new BoxLayout(BoxLayout.X_AXIS));
this.containerTop.setUIID("ContainerScoreGraphique");
this.containerTop.addComponent(labelNameScore);
this.containerTop.addComponent(labelDateExam);
this.containerTop.addComponent(containerButtons);
this.swipeableContainer = new SwipeableContainer(buttonRemoveExam, containerTop);
问题是,当向右滑动时,按钮RemoveExam无法正确显示(仅1或2像素)
我已经在Android Studio中调试过了。我将断点放在SwipeableContainer的动画方法中。它调用topWrapper.setX(100):
@Override
public boolean animate() {
if (openCloseMotion != null) {
int val = openCloseMotion.getValue();
if (openedToRight) {
topWrapper.setX(val);
} else {
topWrapper.setX(-val);
}
repaint();
boolean finished = openCloseMotion.isFinished();
if (finished) {
//getComponentForm().deregisterAnimated(this);
openCloseMotion = null;
if(!open){
bottomRightWrapper.setVisible(false);
bottomLeftWrapper.setVisible(false);
openedToLeft = false;
openedToRight = false;
}else{
dispatcher.fireActionEvent(new ActionEvent(this,ActionEvent.Type.Swipe));
}
}
return !finished;
}
return false;
}
我在模拟器和iOS版本上没有问题
谢谢 无法更改零部件的X坐标,因为实际坐标由布局管理器设置。设置坐标唯一有效的情况是,如果您打算执行
animateLayout
类型的操作,在这种情况下,只有在没有revalidate
的情况下,此操作才会起作用。您无法更改组件的X坐标,因为实际坐标是由布局管理器设置的。设置坐标唯一有效的情况是,如果您打算执行animateLayout
类型的操作,在这种情况下,只有在没有revalidate
的情况下,该操作才会起作用。我刚刚在android上用厨房水槽演示试用了刷卡容器,结果成功了。有没有可能安卓系统中的图标坏了?如果您将文本设置为按钮,它是否有效?我只尝试了文本,但根本不起作用。对于图像,它显示位(1或2像素)。仅供参考,我用Android 6.0.1在三星tab(galaxy tab A 2016)上运行它。如果你使用Android皮肤,它会在模拟器中发生吗?好主意,但Android皮肤没有问题。我也试着把按钮放在右边,但同样的行为在该设备的厨房水槽演示(在“联系人”下)中可以刷卡吗?我刚刚在我的android上用厨房水槽演示试用了刷卡容器,它成功了。有没有可能安卓系统中的图标坏了?如果您将文本设置为按钮,它是否有效?我只尝试了文本,但根本不起作用。对于图像,它显示位(1或2像素)。仅供参考,我用Android 6.0.1在三星tab(galaxy tab A 2016)上运行它。如果你使用Android皮肤,它会在模拟器中发生吗?好主意,但Android皮肤没有问题。我也试着将按钮放在右边,但同样的行为在该设备中的厨房水槽演示(在contacts下)是否可以刷卡?我在之前的评论中提到的关于“setX”的问题实际上位于CodeName一侧(SwipeableContainer.java的动画方法),这是我最初的想法,但后来你提到你编辑了它。是否可能在您的代码中触发重新验证/重新绘制或其他方法?我已经在Android studio中的codenameone源代码中对其进行了编辑(调试时)。我的代码中没有重新验证或重新绘制。我认为一个好主意可能是重构SwipeableContainer类来更改边距,而不是X位置,这并不总是有效的,我倾向于同意,但我没有编写组件,所以我不确定其含义。请提交一个问题并参考这个问题,我会问。我在之前的评论中提到的关于“setX”问题的内容实际上位于CodeName一侧(SwipeableContainer.java的动画方法),这是我最初的想法,但后来你提到你编辑了它。是否可能在您的代码中触发重新验证/重新绘制或其他方法?我已经在Android studio中的codenameone源代码中对其进行了编辑(调试时)。我的代码中没有重新验证或重新绘制。我认为一个好主意可能是重构SwipeableContainer类来更改边距,而不是X位置,这并不总是有效的,我倾向于同意,但我没有编写组件,所以我不确定其含义。请提交一个问题并参考这个问题,我会问。