ListView

Developer/Tizen 2013. 12. 16. 21:10

Tizen::Ui::Controls::ListView를 어플리케이션에의해 여러개의 리스트를 출력하고 컨트롤 할수 있는 UI컨트롤러이다 Listview는 필요로 하는 Simple Item과 사용자 정의 Item들의 리스트를 출력한다. 


Tizen::Ui::Controls::SimpleItem클래스는 Simple Item을 출력하는 리스트이다. Simple item은 수평행에 배치된 비트맵, string 문자열로 구성된 

    레이아웃을 가지고 있다.

Tizen::Ui::Controls::CustomItem클래스는 사용자 정의 Item을 Listview를 이용하여 출력하는데, 사용자 정의 다른 아이템에 비해 다른 레이아

  웃과 높이글 가진다.

  CustomItem 컨트롤은 하나 혹은 그 이상의 string 문자열과 비트맵 이미지들의 요소들로 구성된다. 이러한 Custom drawable elements

  는 Tizen::Ui::Controls::ICustomElement인터페이스를 통해 지원된다. 각 요소들의 값은 CustomItem 컨트롤을 통해 셋팅된다.

List view types


리스트가 길어지는 것을 위해, Tizen::Ui::Controls::GroupedListView를 이용하여 아이템 리스트를 구룹화 하여 관리 할 수 있다. 

그룹화된 리스트뷰는 그룹과 Item으로 구성된다.

- 그룹은 그룹화된 항목을 나타내며, 첫번째 레벨에 배치된다.

- Items(SimpleItem 혹은 CustomItem) 은 관련된 그룹에 배치된다.

그룹화된 리스트뷰에서는 Item들은 유일하게 2개의 인덱스(group index, item index)로 식별된다.


비트맵 이미지나 아이콘들의 리스트를 출력하려면  Tizen::Ui::Controls::IconListView클래스를 이용한다. 아이콘 리스트 뷰 아이템들은 Tizen::Ui::Controls::IconListViewItem클래스를 이용하여 나타내진다. 아이콘 리스트 뷰는 한번에 16 x 16 그리드 화면에서 최대 256개의 아이템까지 포함 될 수 있다. 텍스트와 관련된 아이템 리스트는 위 또는 아래, 상단, 중간 혹은 아이템의 맨 아래에 표시 될 수 있다.


아이콘 리스트뷰는 3가지 스타일을 가지고 있다.

1. ICON_LIST_VIEW_STYLE_RADIO : 오직 아이템을 선택할 수 만 있다.

2. ICON_LIST_VIEW_STYLE_MARK : 여러개의 아이템을 체크 할 수 있다.

3. ICON_LIST_VIEW_STYLE_NORMAL : 아이템을 선택하거나 체크하는것이 허용되지 않는다.


아이콘 리스트뷰 아이템에 대해 3가지 별도의 비트맵 이미지를 정의 할 수 있다. 

(Normal 상태, 아이템이 선택된 상태, 아이템이 강조 표시 상태)


주의!

아이콘 리스트뷰는 반드시 힙을 통해 생성이 되어야 한다. 아이템 리스트뷰는 아이콘 리스트뷰가 destroy되거나, item들이 unload됬을때, 리스트 아이템은 자동적으로 삭제된다. 메모리 사용의 최소화를 위해 어플리케이션을 통해 할당된 텍스트나 비트맵 이미지와 같은 자원들을 해제 한다.


모든 리스트뷰 타입의 리스트뷰는 Tizen::Ui::Controls::IListViewItemProvider와같은 Item provider 인터페이스를 등록 해야하만한다. 리스트뷰가 리스트 아이템을 스크린상에 출력되거나, 출력된 아이템이 메모리상에 사용할 수 없을때, 리스트뷰는 지정된 인덱스에 근거하여 아이템 생성할수 있도록 Item Provider에게 요청한다.


기본적인 리스트뷰의 경우, 리스트가 select, check, uncheck, highlight 되었을때 발생된 이벤트를 감지하고, 처리할수 있는

Tizen::Ui::Controls::IListViewItemEventListener 인터페이스와 OnListViewItemStateChanged() 이벤트 핸들러를 사용한다.

AddListViewItemEventListener() 메소드를 이용하여 리스트에 대한 리스너를 추가한다. 다른 리스트 타입의 경우 리스트타입에 따라 특정된 리스터 인터페이스를 사용한다. 


모든 리스트뷰 타입은 사용자가 리스트뷰 끝으로 스크롤했을때 발생하는 이벤트를 감지하고 처리할수 있는  Tizen::Ui::Controls::IScrollEventListener

인터페이스와, OnScrollEndReached() 이벤트 핸들러를 사용한다. AddScrollEventListener() 메소드를 이용하여 리스트에 대한 리스너를 추가한다.


Tizen::Ui::Controls::ListContextItem클래스는 ListView와 Grouped list view를 위한 Context item을 나타낸다. 




'Developer > Tizen' 카테고리의 다른 글

Privilege(권한) 종류  (0) 2013.12.29
Tizen 화면 가져오는 방법  (0) 2013.12.28
Tizen Application Package Manager  (0) 2013.12.15
Native Application Medel  (0) 2013.12.15
Tizen Push Service  (0) 2013.12.06
Posted by No names
,