안드로이드 어댑터뷰 예제

setSystemUi가시성(int)에 대한 플래그: SYSTEM_UI_FLAG_HIDE_NAVIGATION을 사용하여 탐색 모음을 숨길 때 대화형 상태를 유지하려는 보기입니다. 어댑터뷰는 어댑터에 로드된 항목을 표시하는 ViewGroup입니다. 가장 일반적인 어댑터 유형은 배열 기반 데이터 원본에서 비롯됩니다. 어레이 어댑터가 생성되면 다음과 같이 ListView 개체에 setAdapter()를 호출하면 어댑터가 ListView 개체의 setAdapter 메서드를 통해 ListView에 할당됩니다. 데이터 원본이 배열인 경우 이 어댑터를 사용할 수 있습니다. 기본적으로 ArrayAdapter는 각 항목에 toString()를 호출하고 텍스트를 뷰에 내용을 배치하여 각 배열 항목에 대한 보기를 만듭니다. ListView에 표시할 문자열 배열이 있고, 생성기를 사용하여 각 문자열과 문자열 배열에 대한 레이아웃을 지정하는 새 ArrayAdapter를 초기화하는 것을 고려해 보십시오- ArrayAdapter 클래스는 배열과 목록 개체를 모두 데이터 집합으로 사용할 수 있습니다. 지금은 배열을 데이터 집합으로 사용해 보겠습니다. 이 메서드는 ViewGroup에 이 ViewGroup을 상위로 가져야 하는 지정된 View 개체를 부모에서 제거된 경우에도 해당 ViewGroup이 자식을 그릴 때 다시 표시되도록 지시합니다. 다음은 ListView를 사용하여 자신의 Android 응용 프로그램을 만드는 방법을 보여 줄 수있는 간단한 단계를 안내하는 예제입니다.

우리가 안녕하세요 세계 예제 장에서 만든 안드로이드 응용 프로그램을 수정하려면 다음 단계를 따르십시오 – ListView차례로 어댑터뷰를 확장 AbsListView를 확장. 따라서 이러한 사용자 지정 보기를 처음부터 구현해야 하는 경우 해당 클래스의 소스 코드를 살펴볼 수 있습니다. getView() 메서드의 두 번째 매개 변수는 View 개체를 다시 사용할 수 있도록 하는 것입니다. 무시하면 어댑터 뷰의 성능이 저하됩니다. getView() 메서드가 처음으로 호출되면 convertView는 null입니다. 목록 항목의 레이아웃을 지정하는 리소스 파일을 팽창시켜 초기화해야 합니다. 이렇게 하려면 getLayoutInflater() 메서드를 사용하여 LayoutInflater에 대한 참조를 얻고 팽창() 메서드를 호출합니다. 다음 어댑터를 만듭니다. 이 어댑터는 확인란 보기에 수신기를 추가합니다. 확인란이 선택된 경우 모델의 기본 데이터가 변경됩니다.

확인란은 getTag() 메서드를 통해 할당된 해당 모델 요소를 가져옵니다. 어댑터뷰에서 파생하는 것은 작동할 수 있지만 원하는 만큼 도움이 되지 않을 수 있습니다. AdapterView에서 제공하는 인프라 중 일부는 패키지 전용이므로 액세스할 수 없습니다. 자녀가 이 부모와 해당 상위 항목이 ViewGroup#onInterceptTouchEvent(모션이벤트)를 사용하여 터치 이벤트를 가로채지 않도록 하지 않는 경우에 호출됩니다. 이 상수는 API 수준 28에서 더 이상 사용되지 않았습니다. 뷰 드로잉 캐시는 API 11에서 하드웨어 가속 렌더링이 도입되면서 크게 사용되지 않게 되었습니다. 하드웨어 가속을 사용하면 중간 캐시 계층이 크게 필요하지 않으며 계층을 만들고 업데이트하는 데 드는 비용으로 인해 성능이 순손실될 수 있습니다. 알파 애니메이션과 같이 캐싱 레이어가 유용한 드문 경우인 View.setLayerType(int, android.graphics.Paint)은 하드웨어 렌더링을 통해 이 문제를 처리합니다. View 계층 구조 또는 개별 뷰의 작은 부분의 소프트웨어 렌더링 스냅샷의 경우 비트맵 또는 그림에서 캔버스를 만들고 뷰에서 View.draw(android.graphics.canvas)를 호출하는 것이 좋습니다. 그러나 이러한 소프트웨어 렌더링 사용은 권장되지 않으며 Config.HARDWARE 비트맵, 실시간 그림자 및 개요 클리핑과 같은 하드웨어 전용 렌더링 기능과 호환 문제가 있습니다.