< xml >
<android.support.v7.widget.RecyclerView
android:id="@+id/contentList_RecyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/line2"
android:layout_below="@+id/line1end"
android:layout_marginLeft="5dp"
android:layout_marginTop="0dp"
android:layout_marginRight="5dp"
android:columnWidth="120dp"
android:gravity="center"
android:horizontalSpacing="5dp"
android:numColumns="auto_fit"
android:verticalSpacing="5dp">
</android.support.v7.widget.RecyclerView>
android:columnWidth="120dp" 아이템의 가로 길이
android:numColumns="auto_fit" 크기에 맞게 배치
그리드 뷰처럼 사용하기 위해서 화면에 들어갈 수 있는 아이탬의 갯수를 먼져 구해야 한다.
한 줄에 들어갈 수 있는 아이템의 수를 구하기 위해, 화면의 크기 / 아이템의 크기 를 계산해서, GridLayoutManager 에 대입이 필요하다.
// 화면 크기 구하기
val wm = this.getSystemService(Context.WINDOW_SERVICE) as WindowManager //윈도우 메니져
val display = wm.defaultDisplay
val point = Point()
display.getSize(point)
val screenWidth = point.x // 화면의 가로 길이 구하기
val photoWidth = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 120f, this.resources.displayMetrics).toInt()
val columnsCount = screenWidth / photoWidth // 화면에 들어갈수 있는 갯수
// 어댑터 세팅.
try {
var contentList_Adapter = contentList_Adapter(contentList, this) // 어댑터
contentList_RecyclerView = findViewById(R.id.contentList_RecyclerView)
contentList_RecyclerView.layoutManager = GridLayoutManager(this, columnsCount)
contentList_RecyclerView.adapter = contentList_Adapter
contentList_RecyclerView.adapter.notifyDataSetChanged()
contentList_RecyclerView.scrollToPosition(contentList.size - 1)
} catch (e: Exception) {
Log.d("예외발생 ", e.toString())
}
어댑터는 RecyclerView 어댑터와 동일 하다.
'Kotlin' 카테고리의 다른 글
코틀린 배열 초기화 방법 (0) | 2019.02.11 |
---|---|
코틀린 안드로이드 RecyclerView ItemClickListener 만들기 (0) | 2019.02.09 |
코틀린 ArrayList<Object> 인텐트 보내기 (0) | 2019.01.29 |
코틀린 안드로이드 videoView 사용하기 (0) | 2019.01.28 |
코틀린 핸들러로 객체 전달 (0) | 2019.01.09 |