MessageFragment.java 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. package com.uas.module.girls;
  2. import android.os.Bundle;
  3. import android.support.v7.widget.LinearLayoutManager;
  4. import android.support.v7.widget.RecyclerView;
  5. import android.view.Gravity;
  6. import android.view.LayoutInflater;
  7. import android.view.View;
  8. import android.view.ViewGroup;
  9. import android.widget.TextView;
  10. import android.widget.Toast;
  11. import com.alibaba.fastjson.JSON;
  12. import com.blankj.utilcode.util.SPUtils;
  13. import com.scwang.smartrefresh.layout.api.RefreshLayout;
  14. import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
  15. import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
  16. import com.uas.module.common.base.fragment.EasyFragment;
  17. import com.uas.module.common.model.MessageConfigBean;
  18. import com.uas.module.common.utils.Constants;
  19. import com.uas.module.common.widget.LinearItemDecoration;
  20. import java.util.List;
  21. import de.hdodenhof.circleimageview.CircleImageView;
  22. import q.rorbin.badgeview.Badge;
  23. import q.rorbin.badgeview.QBadgeView;
  24. public class MessageFragment extends EasyFragment {
  25. RecyclerView mListMessage;
  26. public static MessageFragment newInstance() {
  27. return new MessageFragment();
  28. }
  29. @Override
  30. protected int inflateLayoutId() {
  31. return R.layout.fragment_message;
  32. }
  33. @Override
  34. protected void onCreateView(Bundle savedInstanceState, boolean createView) {
  35. if (createView){
  36. initView();
  37. }
  38. }
  39. public void initView(){
  40. mListMessage= findViewById(R.id.rv_message_list);
  41. mListMessage.setLayoutManager(new LinearLayoutManager(ct));
  42. mListMessage.addItemDecoration(new LinearItemDecoration(ct));
  43. String messageList= SPUtils.getInstance(Constants.spName).getString("messageList");
  44. List<MessageConfigBean> datas= JSON.parseArray(messageList,MessageConfigBean.class);
  45. mListMessage.setAdapter(new RecyclerAdapter(datas));
  46. RefreshLayout refreshLayout = findViewById(R.id.refreshLayout);
  47. refreshLayout.setOnRefreshListener(new OnRefreshListener() {
  48. @Override
  49. public void onRefresh(RefreshLayout refreshlayout) {
  50. refreshlayout.finishRefresh(2000/*,false*/);//传入false表示刷新失败
  51. }
  52. });
  53. refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
  54. @Override
  55. public void onLoadMore(RefreshLayout refreshlayout) {
  56. refreshlayout.finishLoadMore(2000/*,false*/);//传入false表示加载失败
  57. }
  58. });
  59. }
  60. class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.Holder> {
  61. private List<MessageConfigBean> data;
  62. public RecyclerAdapter(List<MessageConfigBean> datas) {
  63. data = datas;
  64. }
  65. @Override
  66. public Holder onCreateViewHolder(ViewGroup parent, int viewType) {
  67. return new Holder(LayoutInflater.from(getActivity())
  68. .inflate(R.layout.item_message, parent, false));
  69. }
  70. @Override
  71. public void onBindViewHolder(Holder holder, int position) {
  72. MessageConfigBean bean=data.get(position);
  73. holder.titleTv.setText(bean.getName());
  74. holder.bean=bean;
  75. }
  76. @Override
  77. public int getItemCount() {
  78. return data.size();
  79. }
  80. class Holder extends RecyclerView.ViewHolder {
  81. Badge badge;
  82. CircleImageView headerImg;
  83. TextView titleTv;
  84. TextView headerSubTv;
  85. MessageConfigBean bean;
  86. public Holder(View itemView) {
  87. super(itemView);
  88. headerImg=itemView.findViewById(R.id.headerImg);
  89. titleTv= itemView.findViewById(R.id.titleTv);
  90. headerSubTv= itemView.findViewById(R.id.headerSubTv);
  91. badge = new QBadgeView(getActivity()).bindTarget(itemView.findViewById(R.id.headerImg));
  92. badge.setBadgeGravity(Gravity.TOP | Gravity.END);
  93. badge.setBadgeTextSize(9, true);
  94. badge.setBadgePadding(2, true);
  95. badge.setOnDragStateChangedListener(new Badge.OnDragStateChangedListener() {
  96. @Override
  97. public void onDragStateChanged(int dragState, Badge badge, View targetView) {
  98. if (dragState == STATE_SUCCEED) {
  99. Toast.makeText(getActivity(), String.valueOf(getAdapterPosition()), Toast.LENGTH_SHORT).show();
  100. }
  101. }
  102. }).setBadgeNumber(1);
  103. }
  104. }
  105. }
  106. }