안드로이드/layout

[Android]recyclerview 리스트 크기 제한 및 스크롤 두기

안드로이드멩이 2022. 10. 26. 01:48

   이번 포스팅에서는 recyclerview를 사용했을때 list가 쌓이다 보면 화면을 넘어가거나 안보이게 되는 경우에 대한 해결법을 기록하려 합니다.

 

1. ScrollView를 부모로 두고 조정

     이미 선언된 recyclerview 자체에서 크기를 조정할수는 있지만 list를 활용하다보면 바닥부터 시작하거나(역순출력시)

벽에 붙어서 출력되는 등 제한사항이 생길수있습니다. 그래서 출력되는 list에는 영향을 안주고 해당 상자만 따로 다루도록 하였습니다.

<ScrollView
        android:layout_width="match_parent"
        android:layout_height="400dp"
        android:layout_below="@id/saveTimeTitle"
        android:layout_centerInParent="true">

        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/saveTimeList"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_constrainedHeight="true"
            android:scrollbars="vertical"
            tools:listitem="@layout/recycler_time" />
    </ScrollView>

 위 코드 방식은 recyclerview 는 들어가는 list에 맞춰 height는 생성되나 scrollView 에서 정한 높이만큼 쌓이고 거기에 맞춰 초과시 scroll이 생성됩니다. recyclerview만 쓸떄보다 scrollview 선언과 내부에

app:layout_constrainedHeight="true"

코드 한줄을 추가해주면 됩니다.

 그리고 만약 recyclerview에서 list의 양식을 다루고 싶으면 activity혹은 fragment에 아래 코드를 통해 다양하게 다룰수있습니다. 아래 예씨는 (VERTICAL)세로 출력과 (true)역순입니다.

val listmaneger = LinearLayoutManager(activity as Activity,
LinearLayoutManager.VERTICAL, true)