RecyclerView实现今日头条频道选择功能

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);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容