Android ViewDragHelper-拖动时忽略子布局更改
我正在尝试将边距更新或动画应用到使用Android ViewDragHelper-拖动时忽略子布局更改,android,android-layout,Android,Android Layout,我正在尝试将边距更新或动画应用到使用ViewDragHelper拖动父视图的子视图 但是,在拖动视图时,更新的布局特性无效,并且不会渲染。拖动时,从添加和删除视图到布局动画或布局参数更新的所有内容都将被忽略: 为了说明这个问题,我创建了一个延迟runnable,它在3秒后更新视图(绿色视图)的高度: spacer.postDelayed(new Runnable() { @Override public void run() { Log.d(TAG,"se
ViewDragHelper
拖动父视图的子视图
但是,在拖动视图时,更新的布局特性无效,并且不会渲染。拖动时,从添加和删除视图到布局动画或布局参数更新的所有内容都将被忽略:
为了说明这个问题,我创建了一个延迟runnable,它在3秒后更新视图(绿色视图)的高度:
spacer.postDelayed(new Runnable() {
@Override
public void run() {
Log.d(TAG,"set layout params!!!!");
ViewGroup.LayoutParams spacerParams = spacer.getLayoutParams();
spacerParams.height = (int) (200+(Math.random()*200));
spacer.setLayoutParams(spacerParams);
}
},3000);
检查此演示屏幕录制:
Android仅在执行布局传递时准备好
LayoutParams
,而视图移动时不会发生这种情况。如果要在设置视图的动画时更改其大小,则应改用setScale
。如果您真的需要视图重新运行其布局,您可以手动调用布局(左、上、右、下)
据我所知,ViewDragHelper只会偏移被拖动视图的转换值,实际上不会做出导致重新布局的更改。“使用ViewDragHelper
拖动视图”是一个非常模糊的描述。那是定制组件吗?你实际上是如何使用它的?@user1643723