총 게시물 1,102건, 최근 0 건 안내 RSS 글쓰기
이전글  다음글  목록 글쓰기
[소스코드]

CentralRV 프로젝트 - RecyclerView 가로/세로 가운데 정렬/[Android]

글쓴이 : 김병희라고요 날짜 : 2017-01-30 (월) 03:21 조회 : 1741
글주소 : http://www.androidside.com/B56/32836
CentralRV소스.zip (4.7K), Down : 1, 2017-01-30 03:21:21
 
  아이티윌JAVA 이동균
JAVA, 교육비 전액 국비지원, 프로젝트 수행, 취업지원실 운영으로 취업지원
www.itwillplus.com
  KGITBANK학원 김종수
상담예약접수처, 중고등학생수시대비, 대학전공, 국비지원취업, 정보보안전문가학원.
www.hrditbank.co.kr
  대학인강은 역시 유니와이즈
공대생을 위한 완벽강의! 개념부터 다양한 실습까지, 자바프로그래밍은 유니와이즈에서
www.uniwise.co.kr
신청하기


CentralRV 프로젝트 - RecyclerView 가로/세로 가운데 정렬/[Android]
/ 2017.01.30. 최초 작성

원본 CentralRV 프로젝트 - RecyclerView 가로/세로 가운데 정렬/[Android] http://blog.daum.net/andro_java/951

가로/세로 막론하고 선택된 아이템을 가운데 정렬하는 RecyclerView 프로젝트입니다.

참고 : RecyclerView 아이템뷰 CardView(디자인 골치)를 버리고 RelativeLayout 사용/[Android] http://blog.daum.net/andro_java/863

<소스 다운> 압축파일 첨부


위 둘 중 편한 대로 받아서 보시면 됩니다.

<이미지> 
Screenshot_2017-01-30-02-33-26.png

1. build.gradle(앱)

1) 코드 추가

dependencies {
    ...
    compile 'com.android.support:appcompat-v7:24.2.1'
    compile 'com.android.support:recyclerview-v7:24.2.1'
    compile 'com.android.support:cardview-v7:24.2.1'
}

끝 두 줄을 추가하는데, 카드뷰를 사용하지 않으면 그 줄은 불필요하다.

주의 : appcompat 버전과 같은 버전으로 맞추어야 된다.

2) Sync Now

그래들 싱크를 시켜야 된다.

2. card.xml

카드뷰를 사용하였다(CardView 안에 TextView 하나).

세로로 스크롤하는 경우 화면 폭을 꽉 채우기 위해서는 별도의 아이템 레이아웃을 사용할 필요도 있겠으나, 샘플이므로 하나로 두루 쓴다.

        android:textColor="#112233"

안드로이드 스튜디오 1.5.1로 작업할 때는 불필요했는데 2.2.2로 하다 보니 글자색이 희게 나와서 지정한 것이다.

3. activity_main.xml

상중하 3개의 LinearLayout 안에 각 RecyclerView 하나씩 담았다.

위의 2개는 가로로 스크롤하는 리스트이고, 마지막은 세로로 스크롤하는 리스트이다.

주의 : 가로 스크롤 리스트 가운데 정렬을 위해서는 [너비 layout_width]를 LinearLayout : match_parent, RecyclerView : wrap_content 준다.

4. FastCenterLLM.java 클래스


위 소스에 computeScrollVectorForPosition 메소드 보충한 것이 전부이다.

5. RvAdapter.java 클래스

onClick 메소드에서 selected_position 갱신하기 전후에 notifyItemChanged 2번 실행하는 점을 기억하자.
먼저 선택되었던 아이템의 하이라이트를 빼고 새로 선택된 아이템의 하이라이트를 주기 때문이 아닌가 싶다.

그에 이어서 highBook/highJang/highText 메소드로 책/장/텍스트 각 해당 리스트의 선택된 아이템을 가운데로 정렬한다.

6. MainActivity.java

1) RecyclerView 그리기

3개의 RecyclerView 각각 인플레이트, 매니저 세팅, 어댑터 세팅 순서로 화면에 뿌려준다.

2) 데이터

책 66개, 장 150개, 텍스트 1500줄의 각 아이템을 만들었다.

3) 가운데 정렬

3개의 RecyclerView 각각 scrollToPosition으로 빠르게 이동하고(이것은 손 터치로 클릭할 때는 불필요하지만 코드상으로 제어할 때는 느물느물 기어가는 현상을 보지 않기 위해 필요), 이어서 smoothScrollToPosition으로 가운데 정렬을 시킨다.

smoothScrollToPosition 줄을 주석처리하고 돌려보면 가운데로 정렬되지 않을 것이다.

7. 화면회전

화면이 가로/세로 바뀌면 하이라이트가 사라지고 정렬 위치도 정가운데를 벗어나는데, 그 문제는 이 글 범위를 벗어나므로 생략한다.




추천 버튼을 클릭하면 추천한 자와 추천받은 자 모두에게 포인트가 지급됩니다.

행복한후니 2017-04-27 (목) 19:35
감사합니다. 
댓글주소
이전글  다음글  목록 글쓰기

총 게시물 1,102건, 최근 0 건 안내 RSS
번호 분류 제목 글쓴이 날짜 추천 조회
1102 TIP&TECH  리스트뷰에서 스위치,체크박스사용시 4 에찌 05-08 0 981
1101 TIP&TECH  뷰(RecyclerView/...)에 Max Height 주기/[Android] 김병희라고요 04-26 0 746
1100 TIP&TECH  TabLayout ClickEvent 에찌 04-21 0 722
1099 TIP&TECH  현재 사용하고 있는 어플 foreground인지 backgroun… 4 에찌 04-14 1 1217
1098 TIP&TECH  안드로이드 Drawble 에 해상도 마다 이미지를 … 1 에찌 04-14 0 837
1097 TIP&TECH  fragment 에서 ButterKnife 사용 시 resource가져올 때… 1 에찌 04-12 0 656
1096 TIP&TECH  Youtube 및 facebook 동영상 업로드 할때 1 희망과꿈을 03-28 0 859
1095 TIP&TECH  google service lib 가져올 때 3 에찌 03-20 2 979
1094 소스코드  CentralRV 프로젝트 - RecyclerView 가로/세로 가운… 1 김병희라고요 01-30 1 1742
1093 TIP&TECH  번개검색 시스템/[Android] 2 김병희라고요 12-29 2 1372
1092 TIP&TECH  RecyclerView 특정 포지션으로 스크롤 - smoothScroll… 1 김병희라고요 12-12 1 1376
1091 강좌  왕앱따 107. 자바/C++ 파일읽기 속도 비교/[Androi 김병희라고요 11-26 0 1531
1090 강좌  왕앱따 106. C++ 동영상 강좌/[Android] 김병희라고요 11-23 0 1654
1089 자료  박근혜를 탄핵할 수 있는 어플을 만들었어요. 3 씨드래곤아트 11-23 0 1968
1088 소스코드  AOSP용 한글 키보드 입력키 엘카이저 11-17 1 1476
1087 강좌  addDrawerListener, setDrawerListener(deprecated)/[Android] 김병희라고요 11-02 2 1851
1086 강좌  왕앱따 103. 아이콘 반복클릭 테스트/[Android] 김병희라고요 11-01 0 1455
1085 강좌  왕앱따 100. 안드로이드 왕초보의 앱개발 따라… 김병희라고요 10-29 0 1788
1084 강좌  DoubleDrawer(5) - 좌우 모두 NavigationView 사용/[Andro… 김병희라고요 10-27 0 1324
1083 강좌  DoubleDrawer(4) - 소스 오류(아이콘 토글 문제) 수… 김병희라고요 10-27 0 1165
 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  다음  맨끝
 


Copyright ⓒ www.androidside.com. All rights reserved.
채팅 권한: 글쓰기 1개
2레벨 이상만 대화 가능
공개 채팅: 평일 !(9시 ~ 17시),토,일
안사2 변경사항 보러가기 챗방이 잘 안보이면 크롬에서 접속해주세요
챗방 숨기기 |  챗방 보이기