标签: focusable

focusable和focusableInTouchMode之间的区别?

我想知道它们之间的实际区别......每个应该何时使用,每个应该如何使用,以及哪些情况都有用?

举几个例子并详细解释.

android focus focusable

72
推荐指数
3
解决办法
5万
查看次数

ListView和onItemClick中的可聚焦EditText

ListView我的每个项目中EditText.

当我设置android:focusable="false"EditText然后onItemClickListView项目正在工作,但EditTextclick在里面时没有得到光标.

如果我将设置android:focusable="true"EditText,则EditText可获得焦点,但onItemClick对于ListView当我点击它不工作.

如何分离onItemClick和关注EditText这个项目?

android focusable android-listview onitemclick

14
推荐指数
1
解决办法
6302
查看次数

使用支持 Shadow DOM 的纯 JavaScript 模拟 Tab 键按下

注意:这里和其他地方都存在现有问题,但它们都是特定于 jQuery 的,并且没有涵盖纯 JavaScript 的规范答案,包括对 Web 组件的支持。

我想模拟按 Tab 键,以便焦点转移到 Tab 键顺序中的下一个元素。下一个元素可以是任何 HTML 可聚焦的 HTML 元素或带有tabindex="0". 这也需要在某些后代 HTML 元素可能是具有影子 DOM 的自定义 Web 组件的情况下起作用。

潜在的解决方案可能是触发按键事件或迭代后代节点以寻找可聚焦的节点。

javascript tabindex web-component focusable shadow-dom

11
推荐指数
1
解决办法
7031
查看次数

EditText调用onFocusChanged三次而不是一次

我必须ListView在每个项目上做一个包含的内容EditText.如果EditText获得焦点,我必须显示一个对话框 - 条件严格适用于EditText获得焦点而不是按下时,因为即使没有按下也可以选择它...

为了做到这一点,我使用焦点监听器,EditText但是onFocusChanged当用户按下时,只有一次调用三次调​​用EditText,这意味着对话框被调用两次...

这是调用的顺序:

  • 有焦点
  • 失去焦点
  • 有焦点

我没有任何其他特殊的处理ListViewEditText..所以它应该是从系统以某种方式,也许是因为我使用ListView上的EditText也是一个焦点View..

有没有人有任何想法为什么会发生这种情况,我怎么能"修复"这个?

先感谢您.

android listview focusable android-edittext

6
推荐指数
0
解决办法
606
查看次数

项目可聚焦时的Android ListView,禁用点击

我使用ListView与自定义适配器它只有一个TextView

<TextView
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/list_item_content"
   android:background="@drawable/list_item1"
   android:layout_width="fill_parent" android:layout_height=""wrap_content"

 />
Run Code Online (Sandbox Code Playgroud)

继承我的选择背景:

<selector 
 xmlns:android="http://schemas.android.com/apk/res/android">    

<item android:state_focused="true" android:state_enabled="false"
    android:state_pressed="true"
    android:drawable="@drawable/draw_list_item1" />
<item android:state_focused="true" android:state_enabled="false"
    android:drawable="@drawable/draw_list_item_focused" />

<item android:state_focused="true" android:state_pressed="true"
    android:drawable="@drawable/draw_list_item_selected" />
<item android:state_focused="false" android:state_pressed="true"
    android:drawable="@drawable/draw_list_item_selected" />

<item android:state_focused="true"
    android:drawable="@drawable/draw_list_item_focused" />

<item android:drawable="@drawable/draw_list_item1"/>

</selector>
Run Code Online (Sandbox Code Playgroud)

问题是当我设置TextView属性时: android:clickable="true"android:focusable="true"

然后,我会看到我的焦点版本的背景,但设置这些会导致列表项不再响应点击和长按.删除这两个属性后,所有ListItem都会响应点击和长按.

应该做些什么才能使可聚焦背景可见并且点击响应两者都起作用.

我试过打电话getListView().setItemsCanFocus(true)但问题仍然存在.

android listview background click focusable

5
推荐指数
1
解决办法
3560
查看次数

临时禁用EditText

我想EditText暂时不能获得积累.

场景是:我有两个EditTexts.每当更改任何EditText的文本时,我希望另一个EditText不响应用户点击,直到发生另一个预定义事件.

为此,我尝试了这个:

@Override
protected void onResume() {
    super.onResume();
    Log.d(TAG, "onResume");
    registerBroadcastReceivers();
}

// Register BroadcastReceivers
private void registerBroadcastReceivers() {
    Log.d(TAG, "Registering broadcast receivers.");

    // Google response receiver
    googleResponseReceiver = new GoogleAPIResponseReceiver();
    IntentFilter googleResponseIntentFilter = new IntentFilter(
            RS_GoogleApiIntentService.ACTION_RECEIVED_GOOGLE_RESPONSE);
    googleResponseIntentFilter.addCategory(Intent.CATEGORY_DEFAULT);
    LocalBroadcastManager.getInstance(this).registerReceiver(
            googleResponseReceiver, googleResponseIntentFilter);
}

editText1.addTextChangedListener(new TextWatcher() {
    @Override
    public void onTextChanged(CharSequence s, int start, int before,
                int count) {
        // Set EditText non-focusable
        MyActivity.this.editText2.setFocusableInTouchMode(false);
    }
});

.
.
. 
// Somewhere in one function I call below function to …
Run Code Online (Sandbox Code Playgroud)

android focus focusable android-edittext

5
推荐指数
2
解决办法
6414
查看次数

Jquery不支持伪:可聚焦

我试着运行以下代码:

focusables = container.find(":focusable"); where container is a div.
Run Code Online (Sandbox Code Playgroud)

我收到错误:

Syntax error, unrecognized expression: unsupported pseudo: focusable
Run Code Online (Sandbox Code Playgroud)

我使用的是jquery-1.9.1.原因是什么?有没有其他方法可以找到div中的所有可聚焦元素?

javascript jquery jquery-selectors focusable

5
推荐指数
1
解决办法
3385
查看次数

Android EditText.setError 在不可聚焦时不起作用

如何在不可聚焦的 EditText 中显示带有 setError 的文本错误?重要的是用户不要修改此 EditText,它将为应用程序修改。也许我有另一个不同于 focusable=false 的选项?

现在,我有了:

<EditText
    android:id="@+id/date"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:clickable="true"
    android:ems="10"
    android:focusable="false"
    android:inputType="text"
    android:onClick="onClick" />
Run Code Online (Sandbox Code Playgroud)

非常感谢!

xml android focusable android-edittext

5
推荐指数
1
解决办法
1432
查看次数

使用可选文本处理ClickableSpan的点击需要双击

我有一个TextView每个词都是一个ClickableSpan.单击时,单词变为粗体,单词的字典定义显示在另一个TextView中.应用程序正常工作,直到我在TextView中选择文本.当文本可选时,单击会显示定义,但双击时该单词仅为粗体.双击或长按选择文本(但长按不会使单词变为粗体).

我的猜测是,问题与在动作处理过程中更新绘制状态有关,但我无法找到修复.我试过设置TextView focusable="false"但没有改变.相关代码如下.

curSpan = new WordSpan(index) {
    @Override
    public void onClick(View view) {
        handleWordClick(index,this); // handles code to display definition
        setMarking(true);
        view.invalidate();
        tvText.invalidate();
    }
};

spannableStringBuilder.setSpan(curSpan, totalLength, totalLength + strWord, Spanned.SPAN_COMPOSING);
Run Code Online (Sandbox Code Playgroud)

和WordSpan定义:

class WordSpan extends ClickableSpan
    {
        int id;
        private boolean marking = false;

        public WordSpan(int id) {
            this.id = id;
        }

        @Override
        public void updateDrawState(TextPaint ds) {
            ds.setColor(Color.BLACK);
            ds.setUnderlineText(false);
            if (marking) {
                ds.setTypeface(Typeface.create(myFont,Typeface.BOLD));
            } …
Run Code Online (Sandbox Code Playgroud)

android clickable focusable clickablespan

5
推荐指数
1
解决办法
708
查看次数

如何将焦点放在第一个可聚焦元素jQuery上?

我一直在下拉菜单/弹出菜单上工作,除了一个例外,它工作得很好。当您单击链接(或按Enter键)以打开菜单时,应该将焦点设置为可以接收焦点的下一个元素。因此,在此示例中,单击“菜单1”链接,应展开菜单,并将焦点设置在“测试1”上。但是由于某种原因,它跳转到最后一个可聚焦元素(测试3):

<ul class="axxs-menu">
  <li><a class="trigger">Menu 1</a>
    <ul class="content">
      <li><a href="#1">test 1</a></li>
      <li><a href="#2">test 2</a></li>
      <li><a href="#3">test 3</a></li>
    </ul>
  </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

这是相关的js:

jQuery.extend(jQuery.expr[':'], {
    focusable: function(el, index, selector){
    return $(el).is('a, button, :input, [tabindex]');
}
});

function openPopmenu(element) { 
$(element).removeClass('trigger-inactive').addClass('trigger-active').attr("aria-expanded", "true").attr("aria-selected", "true");
 $(element).next('.collapsed').removeClass('collapsed').addClass('expanded').show().attr("aria-hidden", "false");
$(element).next().find(':focusable').focus();
}
Run Code Online (Sandbox Code Playgroud)

这是一支代码笔:

http://codepen.io/tactics/pen/EZbGBY

任何帮助深表感谢。

jquery focusable

5
推荐指数
2
解决办法
3796
查看次数