RecyclerView实现今日头条频道选择功能
之前整理过使用ItemTouchHelper实现RecyclerView的拖拽排序和滑动删除,正好后面项目里遇到一个类似今日头条频道选择功能的界面,所以先简单弄个demo试试。
第一次上传文件到GitHub,网上搜的教程说是要到 https://desktop.github.com/ 下载桌面端,但安装一直失败,每次加载个不到2M就断掉,得重新来。四木说有装git,用命令行就行,没有的话建议用SourceTree,很简单。下载安装试了下,虽然看不懂,不过总算上传成功了。 https://github.com/wannoo1990/RecyclerAndItemTouch
之前拖拽替换后数据更新都是用的
InfoBoss info = mList.get(fromPosition);
mList.remove(fromPosition);
mList.add(toPosition, info);
notifyItemMoved(fromPosition, toPosition);
但其实这样更新,对应的position没有变化。所以需要使用notifyItemRangeChanged(Math.min(fromPosition,toPosition) ,mList.size()-1);
进行更新。但因为用的SimpleItemTouchHelperCallback extends ItemTouchHelper.Callback的
boolean onMove`拖拽后位置替换马上更新,而有时候会在替换好几次后才最终确定获取数据,所以不能频繁更新。没想到更好的方法,暂时先在Activity对Recycler进行
setOnTouchListener监听,释放时更新数据。
mRecycler.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(mAdapter.isEdit() && MotionEvent.ACTION_UP == event.getAction()){
mAdapter.notifyDataSetChanged();
}
return false;
}
});
Demo有个问题,就是点太快会删除两次。懒得改了,真正项目换个方式处理数据就没问题了。
打开微信、支付宝扫一扫
公司应用主要是为用户提供微信支付宝的信用卡收款功能,有个功能需要将二维码图片保存后,打开微信或支付宝扫一扫。网上找了下相关的,没找到打开微信扫一扫的相关代码,希望以后能看到。这里先贴一下网上找的相关代码,保存一下。
/**跳转微信,不跳转首页,直接跳转后台界面*/
public static void openWechat(Context context){
try{
Intent intent = new Intent();
ComponentName cmp = new ComponentName("com.tencent.mm","com.tencent.mm.ui.LauncherUI");
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setComponent(cmp);
context.startActivity(intent);
}catch (Exception e){
Log.e("","无法跳转到微信",e);
}
}
/**打开支付宝扫一扫*/
public static void openAlipay(Context context){
try {
//支付宝跳过开启动画打开扫码和付款码的url scheme分别是alipayqr://platformapi/startapp?saId=10000007
//和alipayqr://platformapi/startapp?saId=20000056
Uri uri = Uri.parse("alipayqr://platformapi/startapp?saId=10000007");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
context.startActivity(intent);
} catch (Exception e) {
Log.e("","无法跳转到支付宝",e);
}
}
清除腾讯X5内核WebView缓存
有个网页会缓存cookie等信息,只好在每次更换账号时清除WebView缓存。因为用的腾讯X5内核,所以 QbSdk.clearAllWebViewCache(context ,true);