Android. Прокрутка 2 списков вместе

ХОРОШО. То, чего я пытаюсь добиться, - это макет, который дает тот же эффект, что и замороженные панели в Excel. То есть я хочу строку заголовка, которая прокручивается по горизонтали с основным ListView и левой ListView, который прокручивается по вертикали с основным ListView. Строка заголовка и вид слева должны оставаться неподвижными при прокрутке в другом измерении.

Вот макет XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/recordViewLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">
    <LinearLayout android:layout_width="160dp"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <CheckBox
            android:id="@+id/checkBoxTop"
            android:text="Check All"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        <ListView android:id="@+id/engNameList"
            android:layout_width="160dp"
            android:layout_height="wrap_content"/>
    </LinearLayout> 


    <HorizontalScrollView  
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <LinearLayout android:id="@+id/scroll"  
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <include layout="@layout/record_view_line" android:id="@+id/titleLine" />

            <ListView 
                android:id="@android:id/list"
                android:layout_height="wrap_content"
                android:layout_width="match_parent"/>

        </LinearLayout>

    </HorizontalScrollView>
</LinearLayout>

Затем я использую этот код в ListActivity.

public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
    View v = recordsListView.getChildAt(0);
    int top = (v == null) ? 0 : v.getTop();

((ListView)findViewById(R.id.engNameList)).setSelectionFromTop(firstVisibleItem, top);      
}

Это должно привести к тому, что левый ListView будет прокручиваться, когда правый прокручивается пользователем. К сожалению, это не так.

У меня был небольшой гугл, и кажется, что функция setSelectionFromTop () не будет работать в ListView, который вложен в более чем один макет.

Если это так, может кто-нибудь предложить способ заставить их прокручивать вместе, или другой способ настроить макет или другую технику в целом.

Ответы на вопрос(6)

Ваш ответ на вопрос