Android Scroller简单用法

Android里Scroller类是为了实现View平滑滚动的一个Helper类。通常在自定义的View时使用,在View中定义一个私有成员mScroller = new Scroller(context)。设置mScroller滚动的位置时,并不会导致View的滚动,通常是用mScroller记录/计算View滚动的位置,再重写View的computeScroll(),完成实际的滚动。

Read More

Intent传值和Bundle传值的区别

举个例子:我现在要从A界面跳转到B界面或者C界面
这样的话,我就需要写2个Intent,如果你还要涉及的传值的话,你的Intent就要写两遍添加值的方法。那么,如果我用1个Bundle,直接把值先存里边,然后再存到Intent中,不就更简洁吗?

另外一个例子:如果我现在有Activity A ,B ,C;
现在我要把值通过A经过B传给C
你怎么传?如果用Intent的话,A-B先写一遍,再在B中都取出来,然后在把值塞到Intent中,再跳到C,累吗?
如果我在A中用了Bundle的话,我把Bundle传给B,在B中再转传到C,C就可以直接去了。
这样的话,还有一个好处,就是在B中还可以给Bundle对象添加新的key-value,同样可以在C中取出来。

Read More

PendingIntent

在Android中,我们常常使用PendingIntent来表达一种“留待日后处理”的意思。从这个角度来说,PendingIntent可以被理解为一种特殊的异步处理机制。不过,单就命名而言,PendingIntent其实具有一定误导性,因为它既不继承于Intent,也不包含Intent,它的核心可以粗略地汇总成四个字——“异步激发”。
很明显,这种异步激发常常是要跨进程执行的。比如说A进程作为发起端,它可以从系统“获取”一个PendingIntent,然后A进程可以将PendingIntent对象通过binder机制“传递”给B进程,再由B进程在未来某个合适时机,“回调”PendingIntent对象的send()动作,完成激发。

Read More

ScrollView中嵌套GridView,ListView只显示一行的解决办法

在一个界面中,上面是幻灯片,下面是一个ListView,那么上下滑动时,只有ListView的区域滑动,幻灯片是固定不动的,怎么让幻灯片也一起上下滑动呢?有两种方法,一种是把幻灯片使用listview.addHeaderView(view)把幻灯片包含在ListView的顶部,另外一种是把它们包含在ScrollView的区域内,第二种方法比较方便,但是ScrollView中嵌套GridView,ListView只显示一行。
关于为什么只显示一行,个人理解是:如果单独使用GridView和ListView,里面的内容是固定的,底层系统很容易计算出控件要占用的宽高,当外面嵌套一层ScrollView后,就能做上下或左右滑动,但能滑动多少系统不知道,这时就需要你给计算出一个滑动区域给ScrollView。而这个数值就是通过GridView和ListView中的内容总的宽高之和。有更精确的理解欢迎赐教。

Read More