位置: 编程技术 - 正文

触摸模式(Touch Mode)(触摸模式设置)

编辑:rootadmin

推荐整理分享触摸模式(Touch Mode)(触摸模式设置),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:触摸模式在哪里关闭,触摸模式在哪里关闭,触摸模式怎么关闭,触摸模式怎么关闭,触摸模式怎么关闭,触摸模式怎么设置,触摸模式设置,触摸模式怎么关闭,内容如对您有帮助,希望把文章链接给更多的朋友!

原文: (需要翻墙)

转载注明来自: UI工具套件的基本原则.我们的目的很简单:帮助你去设计和开发好的用户体验.一开始,我想先介绍触摸模式,它是UI工具套件最重要的原则.触摸模式是view hierarchy的一种状态,它只受用户与手机交互的影响.单独来看,触摸模式是很容易理解的,它指示了用户最后一次交互是否是触屏操作.比如,当你使用G1手机时,用滚迹球选择一个widget会退出触摸模式,而当用手机点击屏幕上的按钮时又会进入触摸模式.当用户不在触摸模式时,可能会在滚迹球模式(tackball mode),导航模式(navigation mode)或者键盘导航(keyboard navigation).还有,与触摸模式直接相关的唯一的api是View.isInTouchMode().听起来很容易对吗?奇怪的是,触摸模式是大幅简单而进入触摸模式的后果远远超过你的想象。让我们看看一些原因

触屏模式,选项(Selection)和焦点(Focus)

为手机设计UI工具套件是困难的,因为它们要提供各种交互机制.有的设备只提供个按键,有的会有触屏,有的需要触摸笔,有的既有触屏又有键盘.这样来看,第一款商业手机G1对Android开发者社区来说是一项福利,因为它提供了多种形式的输入:触屏,滚迹球和键盘.因为用户可以使用三种不同的机制来与应用交互,我们不得不努力解决所有可能出现的问题.以ApiDemo为例,它显示一个文本项列表.用户可以通过滚迹球来导航这个列表,也可以通过手指来滚动这个列表.这时,选项是一个问题.如果我选择了列表顶部的一项,然后向上滑动列表,选项应该如何变化呢?它依然要在那一项上并滑出屏幕吗?这时,如果我又要用滚迹球来移动选项会发生什么?更糟糕的,如果我按下滚迹球来给予当前的选项来触发动作,而此时选项并没有显示在屏幕上,这时候又会发生什么?在仔细考虑后,我们决定移除选项(在触屏模式).在触屏模式, 没有焦点和选项.一旦用户进入触屏模式,被选项不在被选中.相&#;的,当用户进入触屏模式,获取焦点的控件不再拥有焦点.下面的图片演示了当用户用滚迹球选择了一项后,再点击触屏,应用的反应.

为了让用户觉得更自然,当用户离开触屏模式时,框架知道怎样恢复选项/焦点.例如上边的例子,如果用户又使用滚迹球,先前的选项又会被选中.这就可以解释一个让开发者困扰的事情:他们创建的自定义view只有在滚动一次滚迹球后,才能接受按键事件.原因就是他们的应用处于触屏模式,需要使用滚迹球退出触屏模式,恢复焦点.触屏模式,选项和焦点的关系意味着你不能确定选项/焦点是否一定存在.一个初学者常犯的错误是依赖ListView.getSelectedItemPosition().在触屏模式,这个方法将会返回INVALID_POSITION.你应该使用click listeners 或者 choice mode.

在触屏模式可获取焦点触摸模式(Touch Mode)(触摸模式设置)

现在,你知道在触屏模式焦点是不存在的,我必须声明这并不完全正确.Focus在触屏模式可以存在但是以一种非常特别的方式,我们叫它可获取焦点的.这种特殊的模式是为接受文本输入(如EditText)或者具有过滤功能(如ListView)的控件创造的.这就是为什么在向文本框输入文本之前不必首先用滚迹球或手指选中它.当用户点击屏幕,如果应用没有在触屏模式将会进入触屏模式.在进入触屏模式的过程中会发生什么取决于用户点击了什么和焦点在哪.如果用户点击了一个在触屏模式可获取焦点的控件,这个控件将会获取焦点.否则,现在获取焦点的控件如果在触屏模式不能获取焦点就会失去焦点.例如,在下边的图片中,当用户点击屏幕时,输入框会获取焦点.

在触屏模式是否可以获取焦点是view的一个属性可以通过代码或者xml设置,设置时应该谨慎,因为它破坏了与Android正常行为的一致性.游戏和全屏的地图是一个设置这个属性的很好的例子.下边是一个需要在触屏模式获取焦点的控件的例子.当用户点击AutoCompleteTextView的Suggestion时,焦点依然在输入框.

Android初学者经常会通过设置触屏模式下的获取焦点能力来"修复"不显示选项/焦点.我们希望你考虑清楚.如果使用不正确,你的应用会与系统行为不同,让用户非常不习惯.Android框架包括了所有你需要的工具来处理用户交互,你完全可以不在触屏模式设置控件的可获取焦点性.比如,简单的使用choice mode,而不是让ListView保持它的选项.如果Android框架不适合你的需求,你可以向我们提意见或者提交你的patch.

触屏模式的备忘录

应该这样:

与核心应用保持一致如果你想保持选中状态,使用它们适当的特性(radio button, check box, ListView的选项模式)如果是写游戏,使用(focusable in touch mode)

不应该:

不要在触屏模式保持选中状态或者保持焦点.更多文章请看这里

Android 系统资源(字体,声音,视频)的简介 简述提到android系统资源可能联想到的有很多,这里主要是指字体,键盘,声音图像等。资源位置frameworksbasedata目录下:etcs,fonts,keyboards,sounds,video

android 背景音乐的播放 运行效果图如下一、布局文件actity_main.xml在自己新建的文件夹raw下导入当做背景音乐的歌曲二、java代码1、MainActivitiy.javapackagecom.example.service;importandroid.o

Android OpenGL ES(九)----构建几何物体 1.三角形扇一个三角形扇以一个中心顶点作为起始,使用相邻的两个顶点创建第一个三角形,接下来的每个顶点都会创建一个三角形,围绕起始的中心点

标签: 触摸模式设置

本文链接地址:https://www.jiuchutong.com/biancheng/379598.html 转载请保留说明!

上一篇:动态加载apk的坑(动态加载原理)

下一篇:Android 系统资源(字体,声音,视频)的简介(android资源文件)

  • 应交税费转营业外支出
  • 企业所得税如何做分录
  • 税务鉴定收费标准
  • 应交税费会计分录怎么做明细科目
  • 公允价值变动损益影响营业利润吗
  • 实发工资知道如何发放吗
  • 过桥过闸通行费会计分录
  • 小微企业增值税优惠政策最新2023
  • 下列支出不可以从其应纳税所得额中扣除的是
  • 折旧方法改变属于会计政策变更还是估计变更
  • 材料款付款流程
  • 收到理财产品收益分录
  • 销售产生的磅差入什么科目?
  • 应付账款借方余额为负数是什么意思
  • 保安服务费差额征税如何计算税额
  • 物业公司要怎么开水电费证明
  • 财务报表提供的信息仅对外部的投资者和债权人有用
  • 车辆违章罚款怎么入账
  • 公司购买投影仪的必要性?
  • 个体工商户做账可以做工资吗
  • 1697508750
  • 小规模企业出口可以不报关吗
  • 出租包装物和出借包装物的摊销额
  • 以自有资金进行股权投资
  • iphone系统推送
  • 两免三减半条件
  • php验证码功能怎么实现
  • 简述php图像操作的基本步骤
  • 开发成本属于哪个会计准则
  • 博客管理系统开题报告
  • 鲁棒性分析方法
  • 用php编写一个简单的计算器程序
  • php framework框架
  • python处理mysql如何拿到表头
  • 合同发票收款付款管理系统源码
  • 报销还款人民币是什么意思
  • 开办费的主要账户是什么
  • css边框实现效果图及代码
  • 公司注销员工的经济补偿哪些情况才能是2N呢
  • 高速公路通行发票税率
  • 法人向公司账户打款合法吗
  • 酒吧会计如何做工作
  • 按差额征税
  • 新准则下企业计划的内容
  • 园林绿化行业的市场需求是什么
  • 单位收到社保补贴会计怎样处理
  • 顶账资产入账依据
  • 申购费从哪里扣
  • 企业清算未收到发票
  • 职工宿舍怎么入账
  • 研发费用加计扣除是什么意思啊
  • 没有发票的费用怎么报销
  • 企业所得税必须预缴吗
  • 开业建账到年末怎么做账
  • 编写高质量代码改善JAVA程序的151个建议
  • sql时间用什么数据类型
  • Mysql 5.7.9 shutdown 语法实例详解
  • linux 使用技巧
  • 如何彻底关闭mac电脑app
  • wpl是什么文件
  • linux操作系统的基本操作
  • centos wget
  • win10系统怎么安装qq
  • win7系统怎么设置屏保
  • win8.1无线
  • win10怎么这只让任务栏图标居中显示?
  • win7安装内存4g
  • unity自动攻击
  • js中不用var声明
  • linux系统下hosts文件详解及配置
  • cocos2dx4.0入门
  • [置顶] 启动unity3d 提示“unity3d EditorWindow could not be loaded because the script is not found in the projec”
  • linux哪些方法可以查看命令的详细信息
  • python二叉树
  • jQuery使用zTree插件实现树形菜单和异步加载
  • JavaScript中的数据类型
  • iterator python
  • 国家税务局发票查询
  • 税控盘丢失怎么写情况说明
  • 税收优惠政策有经营和居民住宅出租
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设