Browse Source

优化专辑筛选弹窗选中流程逻辑

Pq 1 year ago
parent
commit
5e2ce18f96

+ 26 - 0
institution/src/main/java/com/cooleshow/institution/stu/widget/SwitchAlbumView.java

@@ -5,6 +5,7 @@ import android.animation.AnimatorListenerAdapter;
 import android.animation.ObjectAnimator;
 import android.content.Context;
 import android.graphics.Color;
+import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -187,6 +188,7 @@ public class SwitchAlbumView extends FrameLayout implements View.OnClickListener
             if (data != null && data.size() > 0) {
                 mAdapter.setSelectId(defaultId);
                 mAdapter.setList(data);
+                scrollToPosition(defaultId, data);
             } else {
                 mAdapter.getData().clear();
                 mAdapter.notifyDataSetChanged();
@@ -194,6 +196,30 @@ public class SwitchAlbumView extends FrameLayout implements View.OnClickListener
         }
     }
 
+    private void scrollToPosition(String defaultId, ArrayList<AlbumListBean> data) {
+        int i = checkSelectPosition(defaultId, data);
+        mRecyclerView.post(new Runnable() {
+            @Override
+            public void run() {
+                mRecyclerView.scrollToPosition(i);
+            }
+        });
+    }
+
+    private int checkSelectPosition(String defaultId, ArrayList<AlbumListBean> data) {
+        try {
+            for (int i = 0; i < data.size(); i++) {
+                AlbumListBean albumListBean = data.get(i);
+                if (TextUtils.equals(defaultId, albumListBean.getId())) {
+                    return i;
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return 0;
+    }
+
     @Override
     public void onClick(View v) {
         int id = v.getId();