0%

最近需要去实现应用内跳转至微博的个人信息页面(用户个人主页),其本质就是打开并跳转至第三方App指定的页面。显然,我们可以通过调用 startActivity(intent) 来实现该功能,其关键就是 intent 中需要携带哪些信息。

阅读全文 »

RecyclerView 并没有 divider 属性,但是我们可以通过 RecyclerView 的 addItemDecoration() 来添加分割线,该方法参数为 RecyclerView.ItemDecoration。

阅读全文 »

最近想动手实现 RecyclerView 的“自动加载更多”功能,即当 RecyclerView 滑动到底部时,执行加载更多操作。这里的关键在于,需要监听RecyclerView是否滑动到底部。

阅读全文 »

问题描述

PopupWindow 中的 showAsDropDown(View anchor) 用于在指定锚点View下方显示 PopupWindow,在Android 7.0 (api<=23) 以前是没什么问题的,但是在Android 7.x系统上,会在某些情况下出现兼容问题:

  1. 如果指定 PopupWindow 的高度为 MATCH_PARENT,调用 showAsDropDown(View anchor) 时,在 7.0 之前,会在锚点 anchor 下边缘到屏幕底部之间显示 PopupWindow;而在 7.0、7.1 系统上的 PopupWindow 会占据整个屏幕(除状态栏之外)。
  2. 如果指定 PopupWindow 的高度为 WRAP_CONTENT, 调用 showAsDropDown(View anchor) 时,便不会出现兼容性的问题。
  3. 如果指定 PopupWindow 的高度为自定义的值height,调用 showAsDropDown(View anchor)时, 如果 height > 锚点 anchor 下边缘与屏幕底部的距离, 则还是会出现7.0、7.1上显示异常的问题;否则,不会出现该问题。可以看出,情况1和2是情况3的特例。
阅读全文 »

前言

在使用Android5.0以上的原生系统过程中,大家会遇到明明自己网络是OK的,但是会在状态栏的移动信号或 WiFi 图标旁显示感叹号(5.0 ~ 7.0.0)或叉号(7.1.1),并且会提示“已连接,但不能接入互联网”的情况…

原因

从Android 5.0开始,系统连接网络或切换网络时,系统模块 NetworkMonitor 会向一特定网址发送数据请求,根据响应的结果从而判断网络的连通性。在原生Android系统中,这一特定网址是Google的网址,不翻墙访问不了,故而会出现感叹号或叉号。

阅读全文 »

目标

在实际开发中,我们不可避免地需要对请求错误进行处理,通常情况下,我们会这样去处理错误请求:

  1. 没有网络的情况下,提示用户网络连接不可用,引导用户打开网络或重新刷新等
  2. 有网络的情况下,则是客户端或服务端的错误,给用户相应的提示

如果针对第一种情况,我们需要在网络恢复的时候重新刷新数据或进行其他操作,又应该如何实现呢?以下就是我们的目标:

  • 监听Android设备网络状态
  • 在网络状态发生改变时,做出相应操作

在示例中,我们在网络状态发生变化时,显示当前网络变化的类型。

阅读全文 »