강력 한 사 이 드 메뉴 컨트롤 ASwipeLayout
3676 단어 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
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[FastDev4Android 프레임 워 크 개발] 신기 ViewDragHelper 완전 해석 의 상세 한 해석 으로 QQQ5. X 사 이 드 스 케 이 트 쿨 링 효과 실현 (34)X 사 이 드 스 케 이 트 효 과 를 모방 한 것 이다.그러면 Google 의 일반적인 방법 은 ViewGroup 을 사용자 정의 하거나 오픈 소스 프로젝트 인 MenuDrawer 나 Google 이 제공 하 는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.