慕村225694
您可以在 SearchView 使用之前拦截所有触摸。我创建了一个拦截所有触摸事件的简单类。Kotlin:class TouchInterceptorLayout @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0) : FrameLayout(context, attrs, defStyleAttr) { // You need override this method. override fun onInterceptTouchEvent(ev: MotionEvent?): Boolean { return true }}爪哇岛:public class TouchInterceptorLayout extends FrameLayout { public TouchInterceptorLayout(Context context) { super(context); } public TouchInterceptorLayout(Context context, AttributeSet attrs) { super(context, attrs); } public TouchInterceptorLayout(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { return true; }}看看 xml 的外观:<com.example.testci.temp.TouchInterceptorLayout android:id="@+id/interceptorLayout" android:layout_width="wrap_content" android:layout_height="wrap_content"> <SearchView android:id="@+id/searchView" android:queryHint="@string/app_name" android:iconifiedByDefault="false" android:layout_height="wrap_content" android:layout_width="wrap_content"/></com.example.testci.temp.TouchInterceptorLayout>现在,您只需设置为 .OnClickListenerinterceptorLayout我的实验的完整代码可以在这里找到。