강력 한 사 이 드 메뉴 컨트롤 ASwipeLayout

머리말
이 컨트롤 의 장점:
1.RecyclerView,ListView,LinearLayout 등에 서 ViewGroup 이 이 컨트롤 을 사용 하면 사 이 드 스 케 이 트 를 실현 할 수 있 습 니 다.
2.컨트롤 의 제스처 미끄럼 충돌 이 해결 되 었 습 니 다.스크롤 뷰 등 컨트롤 이 원활 하지 않 게 미 끄 러 지지 않 습 니 다.
3.컨트롤 은 간단 합 니 다.xml 코트 1 층 에 이 컨트롤 만 있 으 면 됩 니 다.초 접속
4.이 벤트 를 클릭 하 는 것 이 편리 합 니 다.원래 쓰 는 대로 쓰 는 것 입 니 다.
1.효과 도


2.사용 방식 은 간단 하 다.디자인 할 때 어떻게 하면 간단 할 까 하 는 생각 이 든다.
2.1 도입 라 이브 러 리:
Step 1. Add it in your root build.gradle at the end of repositories:

allprojects {
 repositories {
  ...
  maven { url 'https://jitpack.io' }
 }
 }
Step 2. Add the dependency

 dependencies {
     implementation 'com.github.WelliJohn:ASwipeLayout:0.0.2'
 }
2.2 옆으로 미 끄 러 워 야 하 는 레이아웃 의 루트 레이아웃 에 다음 코드 를 추가 하고 주석 을 주의해 야 맞 춤 형 으로 만 들 수 있 습 니 다.

<?xml version="1.0" encoding="utf-8"?>
<wellijohn.org.swipevg.ASwipeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:orientation="horizontal">


  <LinearLayout
    android:id="@+id/ll_content"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#FFFFFF"
    android:orientation="horizontal">

    //         item   ,           
  </LinearLayout>

  <LinearLayout
    android:id="@+id/right_menu_content"
    android:layout_width="wrap_content"
    android:layout_height="match_parent">
 
    //           ,           
  </LinearLayout>


</wellijohn.org.swipevg.SwipeLayout>
여기 조심 하 세 요 llcontent,right_menu_content 는 필수 입 니 다.이 id 에 대응 하 는 레이아웃 은 스스로 바 꾸 지 마 세 요.나중에 필요 하면 놓 을 것 입 니 다.현재 의 경우 일반적인 상황 에서 메 인 item 의 내용 과 오른쪽 메뉴 표시 줄 만 맞 추 면 됩 니 다.여기 서 저 는 추가 적 인 사용자 정의 view 를 줄 였 습 니 다.단순히 id 로 메 인 item 과 오른쪽 메뉴 를 구분 하 는 것 입 니 다.
3.RecyclerView 에서 아 이 템 을 재 활용 하 는 경우 가 있 기 때문에 이러한 상황 에 대한 해결 방안
item 재 활용 으로 인해 우리 가 특정한 menu 에서 미끄러져 나 올 때 RecyclerView 의 상하 미끄럼 을 할 때 다른 item 도 menu 에서 미 끄 러 질 수 있 습 니 다.이것 이 바로 item 재 활용 으로 인해 구조 가 어 지 러 워 졌 기 때문에 이런 유형의 문제 에 대해 저 는 여기 서 OnSwipe State Change Listener 인 터 페 이 스 를 제 공 했 습 니 다.여기 서 미 끄 러 진 상 태 를 기록 할 수 있 습 니 다.onBindView Holder 방법 에서 상태 에 따라 Item 을 menu 로 열 것 인지 menu 를 닫 을 것 인 지 를 설정 합 니 다.

 @Override
  public void onBindViewHolder(ViewHolder holder, int position) {

    final Person person = mDatas.get(position);
    holder.scrollDelLl.setOpen(person.isOpen());

    holder.scrollDelLl.setOnSwipeStateChangeListener(new OnSwipeStateChangeListener() {
      @Override
      public void onSwipeStateChange(boolean open) {
        person.setOpen(open);
      }
    });

  }
위의 코드 와 같이 Item 재 활용 으로 인해 구조 가 어 지 러 워 지 는 문 제 를 해결 할 수 있 습 니 다.
4.프로젝트 를 사용 하 는 과정 에서 새로운 수요 나 bug 가 있다 면 github 에서 요구 사항 이나 issue 를 제시 할 수 있 습 니 다.
5.코드 가 github 에 업로드 되 었 습 니 다ASwipeLayout
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기