浏览代码

[세팅][New] 선택한 홀더로 포커싱

hyodong.min 7 年之前
父节点
当前提交
a386b6d64d

+ 1 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/setting/AgreeInformationViewHolder.java

@@ -51,7 +51,7 @@ public class AgreeInformationViewHolder extends SettingViewHolder {
     textViewMenuText.setOnClickListener(v -> onClickHolder());
   }
 
-  protected void onClickHolder() {
+  protected void onClickHolderInternal() {
     customLayout.setVisibility(customLayout.getVisibility() == View.GONE ? View.VISIBLE : View.GONE);
     imageViewAccordion.setImageResource(customLayout.getVisibility() == View.GONE ? R.drawable.icon_arcordion_open_arrow : R.drawable.icon_arcordion_close_arrow);
   }

+ 1 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/setting/CodeManageViewHolder.java

@@ -58,7 +58,7 @@ public class CodeManageViewHolder extends SettingViewHolder {
     imageViewAccordion.setOnClickListener(view -> onClickHolder());
   }
 
-  protected void onClickHolder() {
+  protected void onClickHolderInternal() {
     customLayout.setVisibility(customLayout.getVisibility() == View.GONE ? View.VISIBLE : View.GONE);
     imageViewAccordion.setImageResource(customLayout.getVisibility() == View.GONE ? R.drawable.icon_arcordion_open_arrow : R.drawable.icon_arcordion_close_arrow);
   }

+ 1 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/setting/CommonSettingViewHolder.java

@@ -56,7 +56,7 @@ public class CommonSettingViewHolder extends SettingViewHolder {
     });
   }
 
-  protected void onClickHolder() {
+  protected void onClickHolderInternal() {
     customLayout.setVisibility(customLayout.getVisibility() == View.GONE ? View.VISIBLE : View.GONE);
     imageViewAccordion.setImageResource(customLayout.getVisibility() == View.GONE ? R.drawable.icon_arcordion_open_arrow : R.drawable.icon_arcordion_close_arrow);
 

+ 1 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/setting/PushAndLocationSettingViewHolder.java

@@ -58,7 +58,7 @@ public class PushAndLocationSettingViewHolder extends SettingViewHolder {
     imageViewAccordion.setOnClickListener(v -> onClickHolder());
   }
 
-  protected void onClickHolder() {
+  protected void onClickHolderInternal() {
     customLayout.setVisibility(customLayout.getVisibility() == View.GONE ? View.VISIBLE : View.GONE);
     imageViewAccordion.setImageResource(customLayout.getVisibility() == View.GONE ? R.drawable.icon_arcordion_open_arrow : R.drawable.icon_arcordion_close_arrow);
   }

+ 14 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/setting/SettingExpandableListViewAdapter.java

@@ -8,6 +8,7 @@ import android.view.View;
 import android.view.ViewGroup;
 
 import kr.co.zumo.app.R;
+import kr.co.zumo.app.lifeplus.view.Event;
 import kr.co.zumo.app.lifeplus.view.IEventListener;
 
 /**
@@ -24,12 +25,19 @@ public class SettingExpandableListViewAdapter extends RecyclerView.Adapter<Setti
 
   private Context context;
   private IEventListener listener;
+  private RecyclerView recyclerView;
 
   public SettingExpandableListViewAdapter(Context context, IEventListener listener) {
     this.context = context;
     this.listener = listener;
   }
 
+  @Override
+  public void onAttachedToRecyclerView(RecyclerView recyclerView) {
+    super.onAttachedToRecyclerView(recyclerView);
+
+    this.recyclerView = recyclerView;
+  }
 
   @NonNull
   @Override
@@ -68,7 +76,12 @@ public class SettingExpandableListViewAdapter extends RecyclerView.Adapter<Setti
 
     holder.bind(event -> {
       if (null != listener) {
-        listener.onEvent(event);
+        if (event.getEventId() == Event.TOGGLE) {
+          recyclerView.scrollToPosition(event.getInteger());
+        }
+        else {
+          listener.onEvent(event);
+        }
       }
     });
 

+ 6 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/setting/SettingViewHolder.java

@@ -49,11 +49,16 @@ public abstract class SettingViewHolder extends RecyclerView.ViewHolder {
     bindInternal();
   }
 
-  protected void dispatchEvent(Event event) {
+  protected final void dispatchEvent(Event event) {
     if (null != listener) {
       listener.onEvent(event);
     }
   }
+  protected final void onClickHolder() {
+    listener.onEvent(new Event.Builder(Event.TOGGLE).integer(getAdapterPosition()).build());
+    onClickHolderInternal();
+  }
 
   protected abstract void bindInternal();
+  protected abstract void onClickHolderInternal();
 }