博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决Item控件抢占焦点
阅读量:6883 次
发布时间:2019-06-27

本文共 1908 字,大约阅读时间需要 6 分钟。

 

http://www.imooc.com/learn/372

 

 

在抢占焦点的控件加上

方法一:

  android:focusable="false"  

方法二:

  在外界布局上

  android:descendantFocusability="blocksDescendants"

 

原因参考

android.widget.AbsListView

@Override

public boolean onTouchEvent(MotionEvent ev) {

  

case MotionEvent.ACTION_UP: {

switch (mTouchMode) {
case TOUCH_MODE_DOWN:
case TOUCH_MODE_TAP:
case TOUCH_MODE_DONE_WAITING:
final int motionPosition = mMotionPosition;
final View child = getChildAt(motionPosition - mFirstPosition);
if (child != null && !child.hasFocusable()) {
if (mTouchMode != TOUCH_MODE_DOWN) {
child.setPressed(false);
}

if (mPerformClick == null) {

mPerformClick = new PerformClick();
}

final AbsListView.PerformClick performClick = mPerformClick;

performClick.mChild = child;
performClick.mClickMotionPosition = motionPosition;
performClick.rememberWindowAttachCount();

mResurrectToPosition = motionPosition;

if (mTouchMode == TOUCH_MODE_DOWN || mTouchMode == TOUCH_MODE_TAP) {

final Handler handler = getHandler();
if (handler != null) {
handler.removeCallbacks(mTouchMode == TOUCH_MODE_DOWN ?
mPendingCheckForTap : mPendingCheckForLongPress);
}
mLayoutMode = LAYOUT_NORMAL;
if (!mDataChanged && mAdapter.isEnabled(motionPosition)) {
mTouchMode = TOUCH_MODE_TAP;
setSelectedPositionInt(mMotionPosition);
layoutChildren();
child.setPressed(true);
positionSelector(child);
setPressed(true);
if (mSelector != null) {
Drawable d = mSelector.getCurrent();
if (d != null && d instanceof TransitionDrawable) {
((TransitionDrawable) d).resetTransition();
}
}
postDelayed(new Runnable() {
public void run() {
child.setPressed(false);
setPressed(false);
if (!mDataChanged) {
post(performClick);
}
mTouchMode = TOUCH_MODE_REST;
}
}, ViewConfiguration.getPressedStateDuration());
} else {
mTouchMode = TOUCH_MODE_REST;
}
return true;
} else if (!mDataChanged && mAdapter.isEnabled(motionPosition)) {
post(performClick);
}
}
mTouchMode = TOUCH_MODE_REST;
break;

转载地址:http://lpnbl.baihongyu.com/

你可能感兴趣的文章
[Git] Git 常用技巧
查看>>
单向链表的逆序操作
查看>>
kNN(K-Nearest Neighbor)最近的分类规则
查看>>
试玩GitHub
查看>>
(十九)WebGIS中I查询的原理及设计(包含AGS、GeoServer、Supermap)
查看>>
SELECT CAST(GETDATE() AS VARCHAR(10)) 显示不同格式的原因
查看>>
akka cluster 初体验
查看>>
HDoj-2524 - 矩形A+B
查看>>
bootstrap模态框和select2合用时input无法获取焦点
查看>>
Asp.net MVC Request Life Cycle
查看>>
Android应用程序模拟手机按键
查看>>
变革之心——读后感
查看>>
CMake 教程
查看>>
Linux编辑器vi使用方法详细介绍
查看>>
【Win 10 应用开发】打印UI元素
查看>>
Effective C++:规定12:不要忘了复制的对象时,它的每一个组成部分
查看>>
SSD固态硬盘检测工具AS SSD参数
查看>>
CentOS7.0 安装JAVA周围环境
查看>>
关于windows系统里locale、code page、ANSI编码的问题
查看>>
JQUERY prop与attr差额
查看>>