美文网首页
RecyclerView实现今日头条频道选择功能

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

作者: 苍蝇的梦 | 来源:发表于2017-02-09 17:39 被阅读204次

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

    相关文章

      网友评论

          本文标题:RecyclerView实现今日头条频道选择功能

          本文链接:https://www.haomeiwen.com/subject/nrcbittx.html