【问题标题】:Is it possible to make touch outside with Bottom Sheet?是否可以通过 Bottom Sheet 在外面进行触摸?
【发布时间】:2022-11-21 17:24:10
【问题描述】:

我试图让触摸底片“后面”。但是对于任何标志或修饰符,它无论如何都会被忽略。 底页看起来像这样

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_gravity="bottom"
    android:background="@color/blue"
    android:paddingStart="16dp"
    android:paddingEnd="16dp"
    android:paddingBottom="15dp"
    app:behavior_hideable="true"
    app:layout_behavior="@string/bottom_sheet_behavior">

    <TextView
        android:id="@+id/tvSaveFilter"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:text="ok"
        android:textColor="@color/white"
        android:textSize="15sp"
        android:textStyle="normal"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/rSaveFilterButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:text="save?"
        android:textColor="@color/white"
        android:textSize="15sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

初始化底页

        val bottomSheetDialog =
            BottomSheetDialog(requireContext())
        val layout = saveBottomSheetBinding.inflate(LayoutInflater.from(requireContext()))
        bottomSheetDialog.setContentView(layout.root)
        bottomSheetDialog.window?.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND)
        bottomSheetDialog.window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE)

        bottomSheetDialog.show()

对于这个问题,我只找到 1 个solution,但它对我不起作用。希望,有一天有人已经遇到了这个问题

【问题讨论】:

    标签: android kotlin bottom-sheet


    【解决方案1】:

    您应该创建自定义底页。像这样的东西。

    class CustomBottomSheetDialog : BottomSheetDialog {
    
        constructor(context: Context) : super(context)
        constructor(context: Context, attrs: AttributeSet) : super(context, attrs)
        constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr)
    
        override fun onTouchEvent(ev: MotionEvent?): Boolean {
            super.onTouchEvent(ev)
            return false
        }
    
        override fun onInterceptTouchEvent(event: MotionEvent): Boolean {
            return false
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-08
      • 2012-11-02
      • 2012-02-13
      • 2017-02-24
      • 2013-04-09
      • 1970-01-01
      • 1970-01-01
      • 2016-07-19
      相关资源
      最近更新 更多