android 中如何设置焦点的位置。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 中如何设置焦点的位置。相关的知识,希望对你有一定的参考价值。

首先,焦点和光标的联系和区别是什么?有光标肯定有焦点吗?
然后是怎么在事件处理程序中设置事件结束后焦点的位置?是setfocus?具体点。
最后,当一个activi启动时,是否有默认光标和焦点?默认光标和焦点在哪?第一个view?怎样设置默认光标焦点的位置?

设置焦点需要以下几步:
1,打开手机相机,进入设置,打开焦点功能。
2,进入拍照页面,双击屏幕的一个地方,相机就会自动锁定焦点。
3,焦点会带有两个锁定框,一个锁定,一个可以拖动。
4,锁定在屏幕上的锁定框就是焦点,可移动的是进行焦距调节。

多数相机的焦距处理并不明显,直接移动焦点效果会好些。
参考技术A view.requestFocus();
使某个view得到焦点

你说的光标是不是输入框的光标?
输入框只有被点击中才会有光标,也就是得到焦点,当然失去了也就失去光标。

其它控件的话要看具体情况,当然这也可以改变,比如说你可以写一个view扩展自EditText, 在内部捕获焦点和光标事件,从而使其变得不一致,虽然这没什么应用价值本回答被提问者采纳
参考技术B view.requestFocus();
使某个view得到焦点你说的光标是不是输入框的光标? 输入框只有被点击中才会有光标,也就是得到焦点,当然失去了也就失去光标。其它控件的话要看具体情况,当然这也可以改变,比如说你可以写一个view扩展自EditText, 在内部捕获焦点和光标事件,从而使其变得不一致,虽然这没什么应用价值
参考技术C 默认从上倒下 从左到右第一个可以输入的控件作为焦点,如果不想默认可以指定某个view或得焦点 参考技术D 用控件的requestFoucus()方法,可使对应的控件获取焦点。

如何将焦点设置在列表视图项上?

【中文标题】如何将焦点设置在列表视图项上?【英文标题】:How to set focus on a List View item? 【发布时间】:2015-05-12 04:57:59 【问题描述】:

我正在尝试编写一个在列表视图中选择并聚焦特定项目的程序。

为什么调用 ListView_SetSelectionMark(或发送 LVM_SETSELECTIONMARK)无法将焦点设置在列表视图项上?调用 ListView_SetSelectionMark 后,焦点保持在原来的位置,而不是切换到新位置;当我按下箭头键时,它会从先前聚焦的项目而不是我指定的项目移动。

这是我的选择和聚焦项目的代码:

ListView_SetItemState(this->m_hwndChild, index, LVNI_SELECTED, LVNI_SELECTED);
ListView_SetSelectionMark(this->m_hwndChild, index);
ListView_EnsureVisible(this->m_hwndChild, index, false);
SetFocus(this->m_hwndChild);

Here is a full gist。每次按 Ctrl-R 时,它会随机选择列表视图中的一项。

【问题讨论】:

【参考方案1】:

SelectionMark 与焦点无关。它仅指示哪个项目开始多选。

您需要改用LVIS_FOCUSED 项目状态:

ListView_SetItemState(this->m_hwndChild, index, LVNI_SELECTED | LVNI_FOCUSED, LVNI_SELECTED | LVNI_FOCUSED);
ListView_EnsureVisible(this->m_hwndChild, index, false);
SetFocus(this->m_hwndChild);

【讨论】:

谢谢!我想我没有想过设置 LVIS_FOCUSED 列表视图项样式,因为我知道设置类似的 TVIS_SELECTED 树视图项样式是不够的。

以上是关于android 中如何设置焦点的位置。的主要内容,如果未能解决你的问题,请参考以下文章

如何防止滚动到焦点 EditText [重复]

如何在Android中手动设置相机焦点值

如何在悬停/焦点上为输入占位符位置设置动画

android 如何让一个dialog的背景为透明

Android View如何获取焦点

Android移动应用中的焦点分析