美文网首页Android文集android 集结号
仿微信 未读消息 标识显示

仿微信 未读消息 标识显示

作者: Luh的星河 | 来源:发表于2019-01-30 11:01 被阅读0次
    01.gif

    步骤:

    • 基于RecyclerView
    • 数据默认显示最后一个
    • 监听 RecyclerView Scroll 方法
        ArrayList<String> sts = new ArrayList<>();
            for (int i = 0; i < 50; i++) {
                sts.add("第 " + i + " 条数据");
            }
            mRecyclerView.setHasFixedSize(true);
            final ScrollSpeedLinearLayoutManger layoutManager = new ScrollSpeedLinearLayoutManger(this);
            mRecyclerView.setLayoutManager(layoutManager);
            mItemAdapter = new ItemAdapter(this, sts);
            mRecyclerView.setAdapter(mItemAdapter);
            mRecyclerView.smoothScrollToPosition(mItemAdapter.getItemCount() - 1);
    
            mTxtNoReadingType.setText("^ 10 条未读");
            mTxtNoReadingType.startAnimation(AnimationUtils.loadAnimation(this, R.anim.in_x));
    
            mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
                @Override
                public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
                    super.onScrollStateChanged(recyclerView, newState);
                }
    
                @Override
                public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
                    super.onScrolled(recyclerView, dx, dy);
                    int position = layoutManager.findFirstVisibleItemPosition();
                    Log.i(TAG, "onScrolled: position================" + position);
                    if (mItemAdapter != null && position != 0) {
                        int count = mItemAdapter.getItemCount();
                        if(mTxtNoReadingType.getVisibility()==View.VISIBLE){
                            if (count - position == 10) {
                                mTxtNoReadingType.startAnimation(AnimationUtils.loadAnimation(MainActivity.this, R.anim.out_x));
                                mTxtNoReadingType.setVisibility(View.INVISIBLE);
                            }
                        }
                    }
                }
            });
    
       <?xml version="1.0" encoding="utf-8"?>
       <set xmlns:android="http://schemas.android.com/apk/res/android"
          android:duration="500">
          <translate
             android:fromXDelta="100%"
             android:toXDelta="0%"
             />
       </set>
    
       <?xml version="1.0" encoding="utf-8"?>
       <set xmlns:android="http://schemas.android.com/apk/res/android"
          android:duration="500">
          <translate
             android:fromXDelta="0%"
             android:toXDelta="100%"
             />
       </set>
    

    相关文章

      网友评论

        本文标题:仿微信 未读消息 标识显示

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