触摸模式(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.MultiAutoCompleteTextVie
w
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.LinearLayout
Clickable : false
LongClickable : false
Focusable
: false
FocusableInTouchMode : false
分享到:
相关推荐
在Android社区中,Recovery Mode是一种特殊的系统模式,允许用户执行高级操作,如备份、恢复、安装更新或刷机。 【描述】"4EXT Recovery Touch v1.0.0.5 RC 7 10.27" 的描述很简洁,没有提供具体的细节。但通常,这...
3. **App Shortcuts**:类似于iOS的3D Touch,允许用户在主屏幕上长按应用图标来快速访问常用功能。开发者需要实现快捷方式接口,提供快捷方式的元数据。 4. **Daydream虚拟现实支持**:Android 7.1加入了对Day...
- **触摸模式**:支持全屏触摸(`TOUCHMODE_FULLSCREEN`)、边缘触摸(`TOUCHMODE_MARGIN`)和无触摸模式(`TOUCHMODE_NONE`)。 - **菜单内容**:菜单内容可以是任何`View`,包括`ListView`、`GridView`或其他...
slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); slidingMenu.setShadowWidthRes(R.dimen.shadow_width); slidingMenu.setShadowDrawable(R.drawable.shadow); slidingMenu.setBehindOffsetRes(R...
Android左右侧滑第三方架包SlidingMenu用于在项目中添加左右侧滑非常方便简洁,使用的方式也非常简单,架包的源码也一同包含在内,侧滑滑动区域也可以设置自定义的模式,如menu.setTouchModeAbove(SlidingMenu.TOUCH...
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); menu.setShadowWidthRes(R.dimen.shadow_width); menu.setShadowDrawable(R.drawable.shadow); menu.setBehindOffsetRes(R.dimen.slidingmenu_...
在模拟器中,可以通过设置 MultiTouch.inputMode 属性来选择要模拟的模式,例如GESTURE、TOUCH_POINT 等等。 在 Android Studio 中,多点触控技术还可以用于模拟多点触控事件,例如缩放、旋转、平移等等。这些事件...
9. **chmod(Change Mode)** - 更改文件或目录的权限:`chmod 755 filename`(给予所有者可读、可写、可执行权限,其他人只可读和执行)。 10. **su(Switch User)** - 切换至超级用户(root),获取更高权限:...
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); menu.setBehindContentView(R.layout.menu_layout); setContentView(R.layout.main_layout); menu.attachToActivity(this, SlidingMenu.SLIDING_WINDOW)...
在触摸屏设备上,通常只有在触控模式(Touch Mode)下,用户触摸一个 `View` 后,该 `View` 才会获取焦点并接收按键事件。 7. **Handling Soft Input Methods** 当软键盘弹出时,Android 系统会自动调整布局以适应...
- `setTouchModeAbove(int touchMode)`:设置触摸模式,如TOUCHMODE_FULLSCREEN、TOUCHMODE_MARGIN等。 - `setShadowDrawable(Drawable shadow)`:设置阴影图片,增加滑动时的视觉效果。 - `setShadowWidthRes(int ...
Android Silencer Android Silencer is an Android application created in response ... With the touch of a button, vibrate mode is easily swapped to silent mode, and with another press, it is swapped back.
Android Simple Tooltip ...Modal mode (prevents touch in the background) Overlay (darkens the background highlighting the anchor) Customizable arrow Inflatable content from a View or XML layout.
- **Touch Mode**: 设置触摸模式,如`TOUCHMODE_MARGIN`(边缘触控)、`TOUCHMODE_FULLSCREEN`(全屏触控)等。 - **Shadow Drawable**: 为滑动效果添加阴影效果,可以自定义阴影图片。 - **Fade Degree**: 调整滑动...
首先,我们要了解多点触控(Multi-Touch)的概念。Android系统提供了`MotionEvent`类来处理触摸事件,包括单指点击、滑动以及多指手势。对于双指拖动和缩放,我们需要监听`ACTION_POINTER_DOWN`和`ACTION_POINTER_UP...
1.2.1 Activity的Launch Mode / 16 1.2.2 Activity的Flags / 27 1.3 Intent Filter的匹配规则 / 28 第2章 IPC机制 / 35 2.1 Android IPC简介 / 35 2.2 Android中的多进程模式 / 36 2.2.1 开启多进程模式...
slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); slidingMenu.setShadowWidthRes(R.dimen.shadow_width); slidingMenu.setShadowDrawable(R.drawable.shadow); slidingMenu.setBehindOffsetRes(R...