1 回答
TA贡献1880条经验 获得超4个赞
您可以在 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
我的实验的完整代码可以在这里找到。
添加回答
举报