같은 활동으로 두 개의 ListView를 집어 넣으려고 피클에 빠져 들었습니다. 표준 (수직) LinearLayout에 포함 된 두 개의 개별 ListFragments를 사용하여 작동합니다.두 ListView로 스크롤하면서 LinearLayout을 채우려 고 시도하는 대신
문제는 두 목록이 함께 화면보다 길고 두 번째 목록이 부분적으로 숨겨져 있다는 것입니다. 시각적으로 사용자는 전체 화면을 드래그하여 두 번째 목록을 공개하려고합니다. 그러나 두 목록에는 내부 스크롤이 있으며 전체 화면을 하나의 항목으로 스크롤 할 수 없습니다.
운 좋게도 실제로 목록에는 매우 적은 항목이 포함되어 있습니다 (평균 5 개씩). 이론적으로, 대신에 두 개의 LinearLayouts 컨테이너를 채울 수 있습니다. 문제는 목록에 표시되는 데이터가 커서에서오고 동적이라는 것입니다. CursorAdapter의 newView() 및 bindView() 메서드를 알고 있지만 ListView 대신 LinearLayout 컨테이너에 어떻게 어댑터를 연결할 수 있는지 잘 모르겠습니다. 나는. CursorAdapter는 커서에서 찾은 5 개의 항목 중 5 개의 행 항목을 만들어야한다는 것을 어떻게 알 수 있습니까? LinearLayout 컨테이너에 항목을 생성하고 커서 항목을 반복하는 루프를 어디에서 만들 수 있습니까? Cursor의 데이터가 변경 될 때 LinearLayout의 내용을 새로 고치는 방법은 무엇입니까? 모든 예제에서는 ListActivity에서 제공하는 ListView에 이러한 문제를 깔끔하게 마무리했지만 ListView를 사용할 수 없습니다!
혼란스러워! 마누
편집
: 여기는 breceivemail 제안 다음 (조각) 활동의 XML 레이아웃입니다. 원래의 LinearLayout 컨테이너는 breceivemail이 제안하기 전에 주석 처리되었습니다. 또한 전체 활동이 차례대로 TabHost에 포함되어 있음을 유의해야합니다. 그러나이 문제가 현재 진행중인 문제에 어떤 차이가 있는지는 알 수 없습니다.
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<!--
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
-->
<TextView android:id="@+id/title"
android:textSize="36sp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/SelectPlayer"/>
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/Playing"
android:textSize="18sp"
android:textStyle="bold"
android:textColor="#000000"
android:background="#999999"/>
<fragment android:name="com.myDomain.myApp.PlayerListFragment"
android:id="@+id/playing"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/Reserve"
android:textSize="18sp"
android:textStyle="bold"
android:textColor="#000000"
android:background="#999999"/>
<fragment android:name="com.myDomain.myApp.PlayerListFragment"
android:id="@+id/reserve"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</ScrollView>
단지 레이아웃을 만드는 것이 더 나은 솔루션이 아니므로 두 개의 ListView가 화면 크기에 맞습니까? – kaspermoerch
그것은 공정한 코멘트 @ KasperMoerch이지만, 목록 항목의 높이는 설계 상 비정상적으로 큽니다. 목록 항목은 특히 첫 번째 목록에있는 항목을 빠르게 탭해야합니다. 더 큰 항목 일수록 더 빨리 도달하고 상호 작용하는 것이 UI 원칙입니다. – manu3d
이것은 모두 공평합니다. 그러나 ListView의 일반적인 점은 스크롤 할 수 있다는 것입니다. 즉, 목록에서 두 개의 ListView가있는 경우 필요한 절반으로 스크롤해야한다는 것을 의미합니다. 각 화면. 나는 당신이 멋진 게임을 만들고 있다는 인상을받습니다. 비판이나 저를 완고한 것으로 보지 말아야합니다. 저는 단순히 UI 디자인의 선택에 도전하려고합니다. 더 나은 해결책이 될 수도 있고 없을 수도 있습니다. – kaspermoerch