为了账号安全,请及时绑定邮箱和手机立即绑定

Android - 通过查询提示使整个搜索视图可点击

Android - 通过查询提示使整个搜索视图可点击

aluckdog 2022-08-17 10:13:12
所以我一直在Android Studio中研究这个库存管理系统。在产品获取的片段中,我有一个搜索视图,我想使这个搜索视图整个身体都是可点击的。这个问题的一部分在这里得到解决:Android - 使整个搜索栏可点击。但我希望搜索视图具有可见的查询提示。所以基本上我希望它是一个带有搜索图标和文本的按钮。我想要这样,因为它应该打开一个对话框,用户实际上将搜索产品。不是从此搜索视图中。
查看完整描述

1 回答

?
慕村225694

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


我的实验的完整代码可以在这里找到。


查看完整回答
反对 回复 2022-08-17
  • 1 回答
  • 0 关注
  • 85 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信