android 触摸模式,android触摸模式默认值

本文探讨了触摸模式(Touchmode)在设备交互中的作用,如何在支持触摸手势时简化用户界面操作,重点介绍了不同控件的默认交互特性如clickable、focusable等,并解释了焦点获取规则。了解这些有助于优化用户体验和应用开发。
摘要由CSDN通过智能技术生成

触摸模式(Touch mode )

当用户直接使用keys或trackball与UI进行交互的时候, 必须先使目标控件获取焦点(比如按钮),这样用户才会注意到是什么控件接收输入. 然而如果设备支持触摸手势的话, 用户可能使用触摸屏与UI进行交互, 这个时候就没有必要将目标控件高亮显示了(即,获取焦点). 因此就产生了这样一种交互模式叫"touch mode ."

对于一个拥有触摸屏功能的设备而言, 一旦用户用手点击屏幕, 设备立刻进入touch mode . 这时候被点击的控件只有isFocusableInTouchMode()方法返回true的时候才会 focusable , 比如EditText控件. 其他可以触摸的控件, 比如按钮, 当被点击的时候不会获取焦点; 它们只是简单地执行onClick事件而已.

任何时候只要用户点击key或滚动trackball, 设备就会退出touch mode ,并且找一个view将焦点置于其上. 此时用户可以不使用触摸手势了.

touch mode 在整个系统运行期间都是有效的(在任何activities中). 如果想要查询当前处于何种状态, 你可以调用View#isInTouchMode()来看看当前是否处于touch mode .

查询各种常用控件的默认初始状态

isClickable()

isLongClickable()

isFocusable()

isFocusableInTouchMode()

android .widget.TextView

Clickable : false

LongClickable : false

Focusable : false

FocusableInTouchMode : false

android .widget.Button

Clickable : true

LongClickable : false

Focusable : true

FocusableInTouchMode : false

android .widget.Chronometer

Clickable : false

LongClickable : false

Focusable : false

FocusableInTouchMode : false

android .widget.DigitalClock

Clickable : false

LongClickable : false

Focusable : false

FocusableInTouchMode : false

android .widget.EditText

Clickable : true

LongClickable : true

Focusable : true

FocusableInTouchMode : true

android .widget.AutoCompleteTextView

Clickable : true

LongClickable : true

Focusable : true

FocusableInTouchMode : true

android .widget.CheckBox

Clickable : true

LongClickable : false

Focusable : true

FocusableInTouchMode : false

android .inputmethodservice.ExtractEditText

Clickable : true

LongClickable : true

Focusable : true

FocusableInTouchMode : true

android .widget.MultiAutoCompleteTextView

Clickable : true

LongClickable : true

Focusable : true

FocusableInTouchMode : true

android .widget.RadioButton

Clickable : true

LongClickable : false

Focusable : true

FocusableInTouchMode : false

android .widget.ToggleButton

Clickable : true

LongClickable : false

Focusable : true

FocusableInTouchMode : false

android .widget.AnalogClock

Clickable : false

LongClickable : false

Focusable : false

FocusableInTouchMode : false

android .widget.ImageView

Clickable : false

LongClickable : false

Focusable : false

FocusableInTouchMode : false

android .widget.ImageButton

Clickable : true

LongClickable : false

Focusable : true

FocusableInTouchMode : false

android .widget.ZoomButton

Clickable : false

LongClickable : true

Focusable : true

FocusableInTouchMode : false

android .widget.ProgressBar

Clickable : false

LongClickable : false

Focusable : false

FocusableInTouchMode : false

android .widget.SeekBar

Clickable : false

LongClickable : false

Focusable : true

FocusableInTouchMode : false

android .widget.RatingBar

Clickable : false

LongClickable : false

Focusable : true

FocusableInTouchMode : false

android .view.SurfaceView

Clickable : false

LongClickable : false

Focusable : false

FocusableInTouchMode : false

android .opengl.GLSurfaceView

Clickable : false

LongClickable : false

Focusable : false

FocusableInTouchMode : false

android .widget.VideoView

Clickable : false

LongClickable : false

android .view.ViewStub

Clickable : false

LongClickable : false

Focusable : false

FocusableInTouchMode : false

Layout只测试了LinearLayout,在这里主观臆断地认为其他Layout都和LinearLayout一样android .widget.LinearLayoutClickable : falseLongClickable : falseFocusable : falseFocusableInTouchMode : false

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值