如何在 Android java 中使用手势制作滑动底部和顶部面板

How to make sliding bottom and top panel with gestures in Android java

我想做类似的事情this

我想让顶部面板向上滑动,当我从底部的白色条其他面板滑动时向上滑动手指当我从白条向上滑动时也向上

你会推荐做什么?我的意思是,根据您的观点,最佳解决方案是什么?

创建布局名称bottom_sheet_dialog_layout.xml

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:id="@+id/download"
            android:background="?android:attr/selectableItemBackground"
            android:padding="8dp">
    
            <ImageView
                android:layout_width="24dp"
                android:layout_height="24dp"
                android:src="@drawable/ic_baseline_cloud_download_24"
                android:layout_margin="8dp"/>
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Download File"
                android:layout_gravity="center_vertical"
                android:padding="8dp"/>
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:id="@+id/shareLinearLayout"
            android:background="?android:attr/selectableItemBackground"
            android:padding="8dp">
    
            <ImageView
                android:layout_width="24dp"
                android:layout_height="24dp"
                android:src="@drawable/ic_baseline_share_24"
                android:layout_margin="8dp"/>
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Share"
                android:layout_gravity="center_vertical"
                android:padding="8dp"/>
    
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:id="@+id/uploadLinearLaySout"
            android:background="?android:attr/selectableItemBackground"
            android:padding="8dp">
    
            <ImageView
                android:layout_width="24dp"
                android:layout_height="24dp"
                android:src="@drawable/ic_baseline_add_to_drive_24"
                android:layout_margin="8dp"/>
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Upload To Google Drive"
                android:layout_gravity="center_vertical"
                android:padding="8dp"/>
    
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:id="@+id/copyLinearLayout"
            android:background="?android:attr/selectableItemBackground"
            android:padding="8dp">
    
            <ImageView
                android:layout_width="24dp"
                android:layout_height="24dp"
                android:src="@drawable/ic_baseline_file_copy_24"
                android:layout_margin="8dp"/>
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Copy Link"
                android:layout_gravity="center_vertical"
                android:padding="8dp"/>
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:id="@+id/delete"
            android:background="?android:attr/selectableItemBackground"
            android:padding="8dp">
    
            <ImageView
                android:layout_width="24dp"
                android:layout_height="24dp"
                android:src="@drawable/ic_baseline_delete_24"
                android:layout_margin="8dp"/>
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Delete File Selection"
                android:layout_gravity="center_vertical"
                android:padding="8dp"/>
        </LinearLayout>
    </LinearLayout>
    

然后创建一个方法

       private void showBottomSheetDialog() {
    
        final BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(this);
  LayoutInflater layoutInflater = LayoutInflater.from(context)
        View dialogView = layoutInflater.inflate(R.layout.bottom_sheet_dialog_layout, null)
        bottomSheetDialog.setContentView(dialogView)
       
        bottomSheetDialog.show();
    }

转到 activity onCreate 方法在你的按钮动作侦听器中调用该方法。

    Button mBottton = findViewById(R.id.button);
        mBottton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                showBottomSheetDialog()
        }
    });