用户交互
文章平均质量分 73
Jennyni1122
所谓坚持,就是犹豫着、退缩着、心猿意马着,想过99次放弃,但最后你还是继续往前走了。走,就有希望!
展开
-
1.利用Action Bar
1.1 问题要在应用程序中使用最新的ActionBar模式,同时保持向后兼容旧设备;此外,还要定制外观以符合应用程序的主题。1.2 解决方案(API Level 7)ActionBar在ActionBar3.0(API Level 11)SDK中被引入,但可以通过Android支持库的AppCompat组件内的ActionBarActivity向后移植到较早的版本。使用ActionBarA...原创 2018-09-25 16:52:24 · 161 阅读 · 0 评论 -
8.自定义BACK按键
8.1 问题应用程序要以自己的方式来处理用户按下物理BACK按键后的行为。8.2 解决方案(API Level 5)可以在Activity中使用onBackPressed()回调方法或者在Fragment中操作回退栈。8.3 实现机制如果想要用户在你的Activity上按下BACK按键时可以得到相应通知,可以覆写onBackPressed()方法,如下所示: @Override...原创 2018-10-09 09:11:48 · 413 阅读 · 0 评论 -
14. 转发触摸事件
14.1 问题应用程序中的一些视图或触摸目标非常小,导致手指很难准确地触摸到。14.2 解决方案(API Level 1)使用TouchDelegate指定任意的矩形区域来向小视图转发触摸事件。TouchDelegate的设计宗旨就是为父ViewGroup关联特定的区域,该区域侦测到触摸事件后会将该事件转发给它的某个子视图。TouchDelegate会发送每个事件到目标视图,就像触摸目标视...原创 2018-10-19 08:50:04 · 128 阅读 · 0 评论 -
9. 自定义HOME按键
9.1 问题应用程序需要实现与按下物理HOME按键一样的功能。9.2 解决方案用户按下HOME按键的行为会发送一个Intent给系统,要求系统加载Home Activity。这与在应用程序中启动其他的Activity并没有什么区别,你要做的就是构建合适的Intent以实现该效果。9.3 实现机制把下面这几行代码添加到Activity中要实现该功能的地方:Intent intent = ...原创 2018-10-10 10:05:27 · 288 阅读 · 0 评论 -
15.阻止触摸窃贼
15.1 问题应用程序视图中设计了嵌套的触摸交互,这些交互不能很好地作用于触摸层次结构 的标准流程,在此层次结构中,较高层的容器视图通过子视图进行窃取来直接处理触摸事件。15.2 解决方案(API Level 1)ViewGroup是框架中所有布局和容器的基类,它为此提供了描述性命名方法requestDisallowTouchIntercept()。在任何容器视图上设置此标志会指示框架,在...原创 2018-10-20 14:58:03 · 138 阅读 · 0 评论 -
17.构建导航Drawer
问题应用程序需要顶层导航菜单,而为了符合最新的Google设计指南,要实现一个这样的菜单,该菜单以动画方式从屏幕的一侧滑进和滑出。解决方案(API Level 7)集成DrawableLayout小部件以管理从屏幕左侧或右侧滑入的菜单视图,Android支持库中提供了该小部件。DrawerLayout是一个容器小部件,它使用指定的Gravity值LEFT或RIGHT(如果支持RTL布局,还...原创 2018-10-31 16:26:36 · 407 阅读 · 0 评论 -
16.创建拖放视图
16.1 问题应用程序的UI需要允许用户将一些视图在屏幕上进行拖动,而且可以将它们放置到其他视图的上面。16.2 解决方案(API Level 11)使用框架中可用的拖放API。View类包含了对管理屏幕上的所有拖动事件的改进,而onDragListener接口则可以关联到任何拖动事件发生时需要得到通知的View。要想开始拖动事件,只需要在希望用户开始拖动的视图上简单地调用startDra...原创 2018-10-30 16:09:47 · 186 阅读 · 0 评论 -
18.在视图之间滑动
问题需要在应用程序的UI中通过手势滑动来实现页面切换,例如视图之间或Fragment之间的切换。解决方案(API level 4)实现ViewPager小部件以提供手势滑动时页面切换的功能。ViewPager是AdapterView模式修改后的实现,ListView和GridView小部件也使用了框架的这种模式。ViewPager需要一个继承自PagerAdapter的子类适配器实现,但从...原创 2018-11-02 09:39:57 · 118 阅读 · 0 评论 -
19. 使用选项卡导航
问题需要在应用程序中为侧向屏幕导航提供可选的选项卡,但Google没有在框架或支持库中提供选项卡小部件。解决方案(API Level 7)我们可以通过Google提供为SDK样本的SlidingTabLayout进行构建来实现选项卡导航。Google已完全淘汰以前的各种Android选项卡,例如TabWidget和ActionBar.Tab,但SlidingTabLayout符合当前的选项...原创 2018-11-05 09:00:58 · 727 阅读 · 0 评论 -
6. 显示一个用户对话框
##6.1 问题需要向用户显示一个简单的弹出式对话框来进行事件通知或展示一个选项列表。##6.2 解决方案(API Level 1)在向用户快速展示重要模态信息的场景中,AlertDialog是最高效的解决方案。它展示的内容可以很轻松地进行自定义,同时框架还提供一个方便的AlertDialog.Builder类来快速构建弹出式对话框。##6.3 实现机制通过使用AlertDialog....原创 2018-09-30 08:58:35 · 209 阅读 · 0 评论 -
2.锁定Activity方向
2.1 问题应用程序中的某个Activity不能旋转,或是旋转需要应用程序代码更直接的干预。2.2 解决方案(API Level 1)在AndroidManifest.xml文件中可以用静态声明将每个Activity的方向锁定为横向或纵向。这个声明只能用于标签,所有不能一次性解决整个应用程序。只需要在元素中加上android:screenOrientation属性,无论设备处于什么位置,...原创 2018-09-26 08:58:48 · 282 阅读 · 2 评论 -
10. 监控TextView的变动
10.1 问题应用程序需要持续监控TextView小部件(例如EditText)中文文本内容的变动情况。10.2 解决方案(API Level 2)实现android.text.TextWatcher接口。textWatcher提供了3个文本更新过程中的回调方法:public void beforeTextChanged(CharSequence s, int start, int co...原创 2018-10-11 08:36:46 · 423 阅读 · 0 评论 -
3.动态方向锁定
3.1 问题在某些特定的条件下,不能让屏幕旋转,但这个条件是临时的或是根据用户的意愿决定的。3.2 解决方案(API Level 1)借助Android的请求方向机制(requested orientation mechanism),应用程序可以调整显示Activity的屏幕方向,将其固定为某个方向或是交由设备决定。这是通过调用Activity.SetReActivity的屏幕方向。这通常...原创 2018-09-27 08:37:10 · 266 阅读 · 0 评论 -
11. 自定义键盘动作
11.1 问题要自定义软键盘上Enter键的外观,或者改变用户按这个键所触发的动作,或者两者都要实现。11.2 解决方案(API Level 3)自定义键盘输入数据小部件的输入方法(Input Method,IME)选项。11.3 实现机制1. 自定义Enter键软键盘出现在屏幕上时,Enter键上的文字通常显示的是根据当前聚焦的控件在视图中的顺序所执行的动作。在没有特别指定时。如果...原创 2018-10-12 08:34:42 · 185 阅读 · 0 评论 -
4. 手动处理旋转
4.1 问题在旋转过程中,默认会将Activity销毁,然后再重新创建,这会严重影响应用程序的性能。如果没有自行修改的话,在配置变化时,Android会结束当前的Activity实例,然后重新创建一个适用于新配置的Activity实例,这会带来性能上的损失,因为这需要先保存UI状态,然后再完全重新构建UI。4.2 解决方案(API Level 1)利用清单文件中的android:conf...原创 2018-09-28 08:57:53 · 128 阅读 · 0 评论 -
5. 创建上下文动作
5.1 问题需要为用户在用户界面中的选择提供多个可供执行的动作。5.2 解决方案(API Level 11)对于与单个项相关的上下文动作,使用PopupMenu显示固定到相关视图的这些动作,在应该影响多个项的示例中,可启用ActionMode来响应用户的动作。注意:该例使用AppCompat支持库来实现最佳的版本兼容性。如果应用程序单纯地支持较早的平台版本,可以使用原生的API实现相同...原创 2018-09-29 09:25:42 · 320 阅读 · 0 评论 -
7. 自定义菜单和动作
7.1 问题应用程序需要为用户提供一个动作集,但又不想占用视图结果的屏幕空间。7.2 解决方案(API Level 7)使用框图中的选项菜单功能在Action Bar内提供常用动作,以及在溢出的弹出式菜单中提供额外的选项。此外,通过使用PopMenu,可以将菜单附加到现有的视图并显示为浮动下拉菜单。此功能用于在应用程序中除了ActionBar之外的任意位置放置菜单,但在用户需要这些菜单之前...原创 2018-10-08 10:43:46 · 176 阅读 · 0 评论 -
12.消除软键盘
12.1 问题需要通过用户界面上的某个事件隐藏或消除屏幕上的软键盘。12.2 解决方案(API Level 2)用InputMethodManager.hideSoftInputFromWindow()方法可以让输入法管理器显式地隐藏可见的输入法。12.3 实现机制下面这个示例演示了如何在View.OnClickListener中调用该方法: public void onCli...原创 2018-10-15 08:35:55 · 112 阅读 · 0 评论 -
小结(用户交互)
如果用户发现应用程序使用不便、功能不易找到,那么应用程序具有良好的外观设计就没有任何意义。大多数Android应用程序中的用户交互模式旨在设计一种在不同应用程序之间一致的用户体验。通过维持该平台的一致性,即使用户以前从未使用过你的应用程序,他们也会熟悉其功能。此部分探讨一些常见的实现模式,用于向用户展示信息和检索他们的输入。以下是上面19个小节的博客链接和Demo资源链接:1.利用Actio...原创 2018-11-05 10:18:44 · 216 阅读 · 0 评论