250x250
Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 주택가 잠실새내
- 부스트코스
- 막내의막무가내 안드로이드 코틀린
- 프로그래머스 알고리즘
- 막내의막무가내 rxjava
- 안드로이드 sunflower
- 막내의 막무가내 알고리즘
- 막내의막무가내 안드로이드 에러 해결
- 막내의막무가내 코틀린 안드로이드
- 안드로이드 Sunflower 스터디
- 부스트코스에이스
- 막내의막무가내 안드로이드
- 막내의막무가내 플러터
- 막내의막무가내 프로그래밍
- 막내의막무가내 SQL
- 주엽역 생활맥주
- Fragment
- flutter network call
- 막내의막무가내 목표 및 회고
- 막무가내
- 막내의막무가내 알고리즘
- 2022년 6월 일상
- 안드로이드
- 막내의막무가내
- 프래그먼트
- 막내의막무가내 코볼 COBOL
- 막내의막무가내 플러터 flutter
- 막내의막무가내 일상
- 막내의막무가내 코틀린
- 막내의 막무가내
Archives
- Today
- Total
막내의 막무가내 프로그래밍 & 일상
[안드로이드] 스크롤뷰 안에 리사이클러뷰 사용시 리사이클러뷰는 스크롤없이 아이템 전체 다 보이게하는 방법 본문
728x90
제목과 같은 형식일때에 대한 포스팅을 해보겠습니다.
다른말로 하면 스크롤뷰안에 리사이클러뷰를 사용할 때 스크롤뷰가 하나있는 효과(?)를 내는 방법이라고도 볼 수 있겠습니다.
예시를 살펴보겠습니다.
일단 효과를 적용한 사진입니다.
저는 게시물의 내용이 양이 어느정도일지모르므로 바깥은 꼭 스크롤뷰를 해야하는 상황이였고 댓글들은 리사이클러뷰로 DB로부터 가져와서 저장해야하는 상황이였습니다.
그런데 그냥 스크롤뷰와 리사이클러뷰를 사용시 이중스크롤이 발생하는데 댓글 칸이 두세개밖에 안보이고 15개의 댓글을 두세개만한칸으로 스크롤을 해서 봐야하는 문제가 발생하였습니다. 만약 게시물이 전체화면을 넘어가면?? ㄷㄷ..
그래서 다음과 같이 해결했습니다.
최상단 ScrollViews대신 NestedScrollView를 사용하고 리사이클러뷰에는 android:nestedScrollingEnabled="false" 속성을 추가하는 것이였습니다.
그러나 이 방법에는 단점도 존재합니다. 리사이클러뷰의 메모리절약 장점이 사라지게 됩니다.. ㅠㅠ
전체코드는 다음과 같습니다. (처음 NestedScrollView와 RecyclerView의 속성을 확인하면됩니다.)
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="8dp"
tools:context=".activity.FullBoardActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="8dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<de.hdodenhof.circleimageview.CircleImageView xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/fullboard_iv_photo"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/com_facebook_profile_picture_blank_square"
app:civ_border_color="#FF000000"
app:civ_border_width="2dp"
app:layout_constraintVertical_bias="0.06999999" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:orientation="vertical">
<TextView
android:id="@+id/fullboard_tv_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="글 제목입니다."
android:textColor="@color/black"
android:textSize="20dp"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/fullboard_tv_nickname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="닉네임" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" | " />
<TextView
android:id="@+id/fullboard_tv_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2019-01-01 12:00" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<ImageView
android:id="@+id/fullboard_iv_uploadimage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp" />
<TextView
android:id="@+id/fullboard_tv_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="내용입니다."
android:textColor="@color/black" />
<ImageButton
android:id="@+id/fullboard_ibtn_recommendup"
android:layout_width="100dp"
android:layout_height="60dp"
android:layout_gravity="center"
android:layout_marginTop="30dp"
android:background="@color/white"
android:scaleType="centerCrop"
android:src="@drawable/ic_recommend" />
<TextView
android:id="@+id/fullboard_tv_recommend"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:text="0"
android:textSize="30dp" />
<LinearLayout
android:layout_marginTop="10dp"
android:orientation="horizontal"
android:layout_width="match_parent"
android:gravity="right"
android:layout_height="wrap_content">
<TextView
android:id="@+id/fullboard_tv_revise"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:text="수정" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:text=" | " />
<TextView
android:id="@+id/fullboard_tv_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="삭제" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="20dp"
android:background="@color/black" />
<LinearLayout
android:id="@+id/fullboard_linear"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="@drawable/login_input"
android:orientation="horizontal"
android:focusableInTouchMode="true"
android:padding="5dp">
<EditText
android:id="@+id/fullboard_pt_inputcomment"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_margin="2dp"
android:layout_weight="7"
android:background="@drawable/message_input"
android:hint="댓글입력"
android:inputType="text"
android:maxLength="150"
android:maxLines="10"
android:padding="5dp" />
<Button
android:id="@+id/fullboard_btn_write"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight="1"
android:background="@color/textBlue"
android:text="등록" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:gravity="left"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="댓글개수 : "
android:textColor="@color/black"
android:textSize="15dp"
android:textStyle="bold" />
<TextView
android:id="@+id/fullboard_tv_commentsum"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
android:textColor="@color/black"
android:textSize="15dp"
android:textStyle="bold" />
</LinearLayout>
<android.support.v7.widget.RecyclerView
android:nestedScrollingEnabled="false"
android:id="@+id/fullboard_rev_comment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
/>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
728x90
'안드로이드' 카테고리의 다른 글
[안드로이드] 리사이클러뷰 android:clipToPadding="false" (0) | 2019.06.09 |
---|---|
[안드로이드] 레트로핏2(Retrofit2) Json코드 java코드로 변환해주는 사이트 (0) | 2019.06.08 |
[안드로이드] 위젯 속성 정리 (0) | 2019.06.02 |
[안드로이드] EditText누르고 키보드 올라올 때 밑에쪽 UI가릴때 (0) | 2019.05.17 |
[안드로이드] 액티비티 스택상관없이 모든 액티비티스택 제거하는방법 (0) | 2019.05.16 |
Comments