自定义对话框inandroid的滑动操作

时间:2017-07-30 16:46:09

标签: android

是否可以在Android中为自定义对话框实施滑动操作。实际上,如果我将滑动对话框,它应该采取新的活动。如果有可能请任何人解释我如何实现相同的。请记住,我不想使用任何第三方库来实现这一点。提前致谢

1 个答案:

答案 0 :(得分:1)

您可以使用CoordinatorLayout执行此操作,因为它已封装此行为。

由于您没有发布任何代码,我将向您展示如何实现这些代码(当然,您必须将对话框置于CoordinatorLayout内在对话框中获得此功能)。 试试这个:

XML

<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<FrameLayout android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:id="@+id/container">

<View
    android:id="@+id/dismiss"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="30dp"
    android:gravity="center"
    android:layout_gravity="center_horizontal|bottom"
    android:background="#3bb0ff"/>

使用的代码

View dismiss = findViewById(R.id.dismiss);
CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) 
dismiss.getLayoutParams();
SwipeDismissBehavior<View> behavior = new SwipeDismissBehavior<>();
behavior.setSwipeDirection(SwipeDismissBehavior.SWIPE_DIRECTION_START_TO_END);

behavior.setListener(new SwipeDismissBehavior.OnDismissListener() {

    @Override
    public void onDismiss(final View view) {
        dialog.dismiss();
    }

    @Override
        public void onDragStateChanged(int i) {}

});

params.setBehavior(behavior);