【问题标题】:Android Long Click vs. Default ClickAndroid 长点击与默认点击
【发布时间】:2018-01-22 12:11:23
【问题描述】:

我有一个聚焦的 EditText 和一个不聚焦的 Button。

当我单击按钮时,EditText 失去焦点。

当我长按按钮时,EditText 不会失去焦点。

这种行为的根源是什么?我想在默认点击中实现长点击行为,这可能吗?

【问题讨论】:

    标签: android android-edittext click focus long-click


    【解决方案1】:

    默认情况下,ClipBoard 操作的长按行为。如果你想用 Single click 覆盖它。您可以按以下方式执行此操作。

    editText=(EditText)findViewById(R.id.txt);
        editText.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                // Do your stuff
                return true;
            }
        });
        editText.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                editText.performLongClick();
    
            }
        });
    

    如果您这样做只是为了摆脱聚焦问题,那么它不是方法。

    【讨论】:

    • 如果你这样做只是为了摆脱聚焦问题,那么你不应该这样做。添加你的 Xml 。
    • 我实际上想要它反过来,我的点击应该执行一个长按。但我尝试了,就像你刚刚展示的那样(在 onclicklistener 中执行 longlick),它不能解决焦点问题。
    • 查看更新后的答案。长按时您到底想做什么,因为如果这样做,它将省略 ClipBoard 操作。
    • 我不关心剪贴板操作。我实际上使用 xamarin.forms + xamarin.android。我有一个edittext,它的焦点布尔属性绑定到另一个布局的可见性(带有多个按钮的网格)。当我点击其中一个按钮时,焦点会丢失在编辑文本上。我不想失去焦点。请求对按钮单击的焦点也不起作用,因为在edittext失去焦点和新分配焦点之间会有一小段时间。我刚刚发现longclick不会使edittext失去焦点。
    • 它基本上是 4 列和 1-10 行的布局(在运行时动态定义)和每列/行中的按钮。我可以在 (xamarin.)android 中重新创建这个布局(它现在是在 xamarin.forms 中制作的)并将其添加到 EditTexts 视图中吗?重要的是,此布局是通过编辑文本的焦点切换的,它不应该占用空间,而是与编辑文本下方的任何视图重叠
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-11
    • 2010-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-26
    • 1970-01-01
    相关资源
    最近更新 更多