티스토리 뷰

728x90
반응형

이 문서는 Xamarin 공식 사이트의 문서를 개인적인 공부를 위해 번역한 것입니다.

오번역된 내용은 댓글을 남겨 주시면 감사하겠습니다.

더 자세한 내용 및 최신 내용은 아래 사이트를 참고하시기 바랍니다.

원본 문서 : https://developer.xamarin.com/guides/android/user_interface/working_with_listviews_and_adapters/part_1_-_listview_parts_and_functionality/



Part 1 - ListView의 구성과 기능

ListView는 아래와 같이 구성되어 있다:
Rows(행) : 리스트에 데이터를 시각적으로 표시.
Adapter : 데이터를 리스트에 바인딩 하는 시각적으로 보이지 않는 클래스.
Fast Scrolling(빠른 스크롤) : 사용자가 리스트에서 원하는 위치로 스크롤 할 수 있게 해 주는 핸들.
Section Index : 스크롤 위에 표시되어 현재 행의 위치를 나타내주는 유저 인터페이스 요소.
아래 스크린샷은 기본 ListView 컨트롤을 사용하여 Fast Scrolling과 section Index가 어떻게 표시되는지를 보여준다:




ListView를 구성하는 요소들은 아래에서 자세히 설명한다:

Rows(행)
각 row는 각각의 View를 가진다. View로 Android.Resource에 기본으로 내장하고 있는 것 중에 하나를 사용하거나, 커스터마이징 한 뷰를 사용할 수 있다. 각 행에는 동일한 뷰 레이아웃을 사용할 수도 있고 각 행에 모두 다른 뷰를 사용할 수도 있다. 이 문서에 있는 예제는 기본 레이아웃 사용법에 대해 다루고, 다른 문서에 있는 예제에서는 레이아웃을 커스터마이징하여 사용하는 방법에 대해 다루고자 한다.

Adapter(어뎁터)
ListView 컨트롤은 각 행의 뷰에 제공하기 위한 Adapter를 사용해야 한다. 안드로이드는 기본 Adapter와 View를 제공하고 있으며, 커스터마이징해서 사용할 수도 있다.

Fast Scrolling(빠른 스크롤)
ListView에 많은 데이터를 표시해 주고 있을 때, fast-scrolling이 원하는 행을 찾는데 도움을 줄 수 있다. 빠른 스크롤 '스크롤 바는'선택적으로 사용할 수 있다.(API 레벨 11 이상에서는 커스터마이징을 할 수 있다.)

Section Index
긴 목록을 스크롤 하게 되면, Section Index는 현재 위치가 어디인지 사용자에게 보여줍니다. Section Index는 긴 목록에만 적합합니다. 보통 Fast Scrolling과 함께 쓰인다.

클래스 개요
ListView를 표시하는데 사용되는 주요 클래스들은 다음과 같다:


각 클래스의 목적은 아래와 같다:

ListView : 스크롤 가능한 행들의 모음을 표시해 주는 사용자 인터페이스 요소이다. 휴대폰에서는, 전체 화면을 채워서 사용되거나(이런 경우 ListActivity가 사용될 수 있다.) 휴대폰 또는 테블릿 레이아웃의 많은 부분을 차지한다.
뷰(Views) : View는 안드로이드의 어떠한 UI 요소도 될 수 있다. 하지만 ListView에서는 각 행에 제공되어야 한다.
BaseAdapter : 데이터를 ListView에 바인딩 하기 위한 Adapter 구현의 Base 클래스이다.
ArrayAdapter : string 배열을 ListView로 바인딩 해 표시해 주기 위한 기본 Adapter 클래스이다. ArrayAdapter<T> 제네릭(generic)은 같은 기능을 하며 string 대신 다른 타입을 지원한다.
CursorAdapter - CursorAdapter 또는 SimpleCursorAdapter를 사용하면 SQLite 쿼리를 이용하여 데이터를 표시할 수 있다.
이 문서에는 ArrayAdapter를 사용한 간단한 예제 뿐만 아니라, BaseAdapter 또는 CursorAdapter를 이용한 좀 더 복잡한 예제를 다룬다.

728x90
반응형

'Xamarin.Android > User Interface' 카테고리의 다른 글

[Xamarin.Android] ListView와 Adapter  (0) 2017.01.30
댓글