WEB开发网
开发学院手机开发Android 开发 Android 开发指南 用户界面 事件处理 阅读

Android 开发指南 用户界面 事件处理

 2010-04-13 02:00:00 来源:WEB开发网   
核心提示:触摸模式Touch Mode当用户使用方向键或跟踪球浏览用户界面时,有必要给用户可操作的 item(比如按钮)设置焦点,Android 开发指南 用户界面 事件处理,这样用户可以知道哪个item将接受输入,不过,比如:< LinearLayoutandroid:orientation="vertical

触摸模式Touch Mode

当用户使用方向键或跟踪球浏览用户界面时,有必要给用户可操作的 item(比如按钮)设置焦点,这样用户可以知道哪个item将接受输入。不过,如果这个设备有触摸功能,而且用户通过触摸来和界面交互,那么就没必要高亮items,或者设定焦点到一个特定的视图。这样,就有一个交互模式 叫“触摸模式”。

对于一个具备触摸功能的设备,一旦用户触摸屏幕,设备将进入触摸模式。自此以后,只有isFocusableInTouchMode()为真的视图才可以被聚焦,比如文本编辑部件。其他可触摸视图,如按钮,在被触摸时将不会接受焦点;它们将只是在被按下时简单的触发on-click侦听器。任何时候用户按下方向键或滚动跟踪球,这个设备将退出触摸模式,然后找一个视图来接受焦点,用户也许不会通过触摸屏幕的方式来恢复界面交互。

触摸模式状态的维护贯穿整个系统(所有窗口和活动)。为了查询当前状态,你可以调用isInTouchMode() 来查看这个设备当前是否处于触摸模式中。

处理焦点Handling Focus

框架将根据用户输入处理常规的焦点移动。这包含当视图删除或隐藏,或者新视图出现时改变焦点。视图通过isFocusable()方法表明它们想获取焦点的意愿。要改变视图是否可以接受焦点,可以调用setFocusable()。在触摸模式中,你可以通过isFocusableInTouchMode()查询一个视图是否允许接受焦点。你可以通过setFocusableInTouchMode()方法来改变它。焦点移动基于一个在给定方向查找最近邻居的算法。少有的情况是,缺省算法可能和开发者的意愿行为不匹配。在这些情况下,你可以通过下面布局文件中的XML属性提供显式的重写:nextFocusDown, nextFocusLeft, nextFocusRight, 和nextFocusUp。为失去焦点的视图增加这些属性之一。定义属性值为拥有焦点的视图的ID。比如:

< LinearLayout

android:orientation="vertical"

... >

< Button android:id="@+id/top"

android:nextFocusUp="@+id/bottom"

... / >

< Button android:id="@+id/bottom"

android:nextFocusDown="@+id/top"

... / >

< /LinearLayout >

通常,在这个竖向布局中,从第一个按钮向上浏览或者从第二个按钮向下都不会移动到其它地方。现在这个顶部按钮已经定义了底部按钮为nextFocusUp

1 2  下一页

Tags:Android 开发指南 用户界面

编辑录入:coldstar [复制链接] [打 印]
赞助商链接