Séb*_*ien 12 android android-linearlayout viewdraghelper
我正在游戏中实现自定义可扩展操作栏.我正在使用ViewDragHelper来处理条形视图的拖动和拖动,它包含在LinearLayoutI子类中以附加ViewDragHelper.
以下链接对实现此目的有很大帮助:
我遇到的唯一问题是我的父LinearLayout 的layout()的行为:在每次调用layout()/时onLayout(),子draggable/expandable操作栏被重置为其原始位置(XML布局中设置的位置).
这是为什么 ?
(根据我的经验,layout()从未对已被移动的观点的位置感到困惑)
use*_*758 11
我正在使用的解决方法是在每次拖动操作后记录视图的偏移量,并重新应用它们onLayout(),例如
View mVdhView;
int mVdhXOffset;
int mVdhYOffset;
@Override
public void computeScroll() {
if (dragHelper.continueSettling(true)) {
postInvalidateOnAnimation();
} else {
mVdhXOffset = mVdhView.getLeft();
mVdhYOffset = mVdhView.getTop();
}
}
@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
super.onLayout(changed, left, top, right, bottom);
// Reapply VDH offsets
mVdhView.offsetLeftAndRight(mVdhXOffset);
mVdhView.offsetTopAndBottom(mVdhYOffset);
}
Run Code Online (Sandbox Code Playgroud)