gpt4 book ai didi

android - 如何恢复使用 SwipeDismissBehavior 取消的 View

转载 作者:行者123 更新时间:2023-11-29 15:44:50 27 4
gpt4 key购买 nike

我在 CoordinatorLayout 中为 InputTextLayout 使用 SwipeDismissBehavior。它解雇后我需要把它拿回来。这是我如何尝试实现它的代码:

layoutDateComplete = (TextInputLayout) rootView.findViewById(R.id.layoutDateComplete);
behavior = getSwipeDismissBehavior();
CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) layoutDateComplete.getLayoutParams();
params.setBehavior(behavior);

private SwipeDismissBehavior<TextInputLayout> getSwipeDismissBehavior() {
SwipeDismissBehavior<TextInputLayout> behavior = new SwipeDismissBehavior();
behavior.setSwipeDirection(SwipeDismissBehavior.SWIPE_DIRECTION_END_TO_START);
behavior.setListener(new SwipeDismissBehavior.OnDismissListener() {
@Override
public void onDismiss(View view) {
ViewCompat.setX(layoutDateComplete, 0);
}

@Override
public void onDragStateChanged(int state) {
}
});
return behavior;

这是第一次工作。但是在 View 不再滑动之后。解散后恢复 View 的正确方法是什么?

最佳答案

This CI Apps 的回答对我来说几乎是完美的,但在我向右滑动后, subview 没有重新出现。您可以通过调用解决此问题

MyChildView.setAlpha(1.0f);

因此这可以重置 subview :

CoordinatorLayout.LayoutParams tParams = (CoordinatorLayout.LayoutParams) tChild.getLayoutParams();
tParams.setMargins(0, 0, 0, 0);
tChild.requestLayout();
tChild.setAlpha(1.0f);

替代方法:您还可以将新的 SwipeDismissBehavior 分配给 CoordinatorLayout.LayoutParams 以重置行为。之后您仍然需要对 child 调用 setAlpha(1.0f)

关于android - 如何恢复使用 SwipeDismissBehavior 取消的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34619598/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com