首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拖动PlayN/Tripleplay小部件而不重新计算布局

拖动PlayN/Tripleplay小部件而不重新计算布局
EN

Stack Overflow用户
提问于 2014-09-11 05:41:25
回答 1查看 44关注 0票数 0

我喜欢PlayN框架的Tripleplay UI布局,但有时我是否可以禁用布局计算,这样就可以在不触发布局计算的情况下移动或更改小部件的文本?

例如,我在AxisLayout中创建了一个具有单个按钮的简单屏幕,并在该按钮中添加了一个侦听器:

代码语言:javascript
复制
button.layer.addListener(new Adapter() {
    private float startX;

    @Override
    public void onPointerStart(Event event) {
        startX = event.localX();
    }

    @Override
    public void onPointerDrag(Event event) {
        button.layer.transform().translateX(event.localX() - startX);
    }
});

现在拖动按钮向左和右移动,我很高兴。您可以看到源代码论吉乌布

但是,该代码有两个问题:

  1. 当我松开鼠标或举起手指时,按钮就会回到它的起始位置。
  2. 如果我将鼠标或手指向上拖动以使其离开按钮,则按钮将短暂地闪回其起始位置,然后继续拖动。如果我松开鼠标,或者在按钮外举起手指,按钮就会保持在原来的位置。

似乎正在发生的是,每当按钮从按下状态更改为未按下状态或另一种方式时,屏幕的布局就会重新计算,并且按钮返回到它的起始位置。

有没有办法告诉屏幕不要重新计算它的布局?我能告诉那个按钮它是有效的吗?

我能想到的唯一策略是把按钮放在轴布局中,计算它的位置,然后将它从轴布局移动到绝对布局,而我则移动它。我希望有更简单的方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-03 09:45:57

tripleplay元素的思想是,它们根据布局、约束、大小等来定位自己。

如果您希望能够移动它们,则需要使用AbsoluteLayout

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25779859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档