2013-03-12 2 views
-1

내 응용 프로그램에는 모든 컨트롤 (확인란, 라디오 버튼, 드롭 다운 목록 등)이 표시되는 선형 레이아웃의 화면이 있습니다. 화면을 표시 할 때 모든 컨트롤 (1000 개의 컨트롤)을로드하고 표시합니다. 시간이 오래 걸리면 모든 컨트롤이로드되고 표시됩니다. 따라서이 대신 화면에 10 개의 컨트롤 만 표시 할 수 있으며 아래로 스크롤하면 다른 10 개의 컨트롤이 동적으로로드되어 화면에 표시됩니다.LinearLayout - 스크롤 할 때 내용을 동적으로 추가합니다.

선형 레이아웃을 사용하고 있으며 listview를 사용하고 싶지 않습니다.

내 모든 컨트롤은 단일 행에 있지 않기 때문에 나는, 목록보기를 사용할 수 없습니다

편집. 예를 들어 체크 박스 컨트롤은 row1로, 날짜 표시는 row2로, 라디오 버튼은 텍스트를 row3로 편집합니다.이 모든 컨트롤은 서버에서 동적으로 제공됩니다. 그래서 여기에 내가 제안한대로 listview 사용할 수 없습니다.

+0

1000 개의 제어 목록이 있습니까? 레이아웃/UI 디자인의 전체 리팩터링을 고려해야 할 것 같은데 ... 실제로 990 컨트롤을 스크롤하여 마지막 컨트롤에 액세스 할 것으로 기대합니까? 하위 범주를 만들고 탐색 UI를 만듭니다. – WarrenFaith

+0

안녕하세요. 내 친구, UI를 개발할 수있는 방법이 아닙니다. 응용 프로그램 UI 디자인을위한 응용 프로그램 및 응용 목적에 대한 의견을주십시오. – AppleDroid

답변

0

물론, 지연로드와 같은 것들을 구현하고 스크롤 위치에 따라 데이터를 스크롤하고로드 할 수있는 조정 된 LinearLayout으로 끝낼 수 있습니다. 어댑터를 호출하고로드를 처리 할 수있는 별도의 클래스를 생성합니다.

그리고 당신은 ListView의 나쁜 버전을 만들었다는 것을 알고 있습니다.

+0

이 문제에 대한 아이디어 – mindus

0

컨테이너에서 여러 유형의보기를 동적으로로드하는 가장 좋은 해결책은 AdapterView까지 확장되는 일종의 컨테이너를 사용하는 것입니다. 그런 식으로 Adapter을 구현하면 필요한 모든보기를 만들 수 있습니다. 이것은 필요한 모든보기를 만드는 대신 경계 밖으로 스크롤하는보기를 다시 사용하므로 매우 효율적인 방법입니다.

내 코드에서 나는 AdapterView<ListAdapter>까지 확장되는 컨테이너를 사용하며 훌륭하게 작동합니다.

1

편집 인수가 잘못되었습니다. 행은 사전 정의 된 것이 아니라 논리 단위입니다. 줄을 통제하는 것보다 훨씬 더 많이 넣는 것은 완전히 당신에게 달린 것입니다.

정말 ListView를 사용하고 행에 표시 할 내용을 동적으로 변경해야합니다. 당신이 말했듯이 : 행 1에는 체크 박스를, 행 2에는 날짜 표시를, 행 3에는 TextView와 on/off 토글과 같은 두 가지 생각이 있습니다. 그것은 심각하게하지만 당신을 위해 건설을 만드는 것입니다 : ListView를 사용!

게다가 :이 UX는 끔찍하고 "금지"목록에 대한 완벽한 예가 될 것입니다. 어떻게 든 서버에서 오는 컨트롤을 구조화하십시오. 각 설정 화면에는 "사운드", "비디오", "알림"과 같은 몇 가지 범주가 있습니다 ... 동일한 컨트롤을 만드십시오! 나는 당신이 어떻게 든 당신이 얻는 통제를 분류 할 수 없다는 것을 정말로 의심합니다.

UX 재해를 막기 위해이 작업을해야합니다.

관련 문제