1.recycleview中使用GridLayoutManager使其有gridview的效果:
表格布局,第一个参数表示上下文,第二个参数表示表格有多少列,代码如下:
rv.setLayoutManager(new GridLayoutManager(this,3));
在表格布局中还可以修改参数,使其水平布局,那么那个数字就代表着有几行了,同样最后一个参数表示反转:
rv.setLayoutManager(new GridLayoutManager(this,3,GridLayoutManager.HORIZONTAL,false));
2.moveTaskToback退后台的用法及作用
方法:public boolean moveTaskToBack(boolean nonRoot)
activity里有这个方法,参数说明如下:
nonRoot=false→ 仅当activity为task根(即首个activity例如启动activity之类的)时才生效
nonRoot=true→ 忽略上面的限制
这个方法不会改变task中的activity中的顺序,效果基本等同于home键
应用场景:
比如有些activity诸如引导图之类的,用户在按返回键的时候你并不希望退出(默认就finish了),而是只希望置后台,就可以调这个方法
moveTaskToBack()方法:在activity中调用 moveTaskToBack (boolean
nonRoot)方法即可将activity 退到后台,注意不是finish()退出。判断Activity是否是task根,Activity本身给出了相关方法:isTaskRoot()
moveTaskToBack调用后,task中activity的顺序不会发生变化,例如A启动B,B中调用此方法退到后台,重新启动应用会调用B中的onRestart-onStart-onResume方法,不会重新调用onCreate,而且在B中按下back键返回的还是A,这就是退到后台的功能。
3.ViewConfiguration.getScaledTouchSlop();触发移动事件的最小距离
ViewConfiguration.getScaledTouchSlop();触发移动事件的最小距离,自定义View处理touch事件的时候,有的时候需要判断用户是否真的存在move,系统提供了这样的方法。表示滑动的时候,手的移动要大于这个返回的距离值才开始移动控件。
int touchSlop = ViewConfigurationCompat.getScaledPagingTouchSlop(ViewConfiguration.get(context));