Android. Défilement 2 listviews ensemble

OK. Ce que je suis en train de réaliser une mise en page qui fait le même effet que des volets figés dans Excel. Qui est je veux une ligne d'en-tête qui permet de faire défiler horizontalement avec les principaux ListView et une main gauche ListView qui défile verticalement avec les principaux ListView. La ligne d'en-tête et de la main gauche listview doit rester à l'arrêt lors du défilement dans l'autre dimension.

Ici est la mise en page 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>

Je suis alors à l'aide de ce code dans le 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);      
}

Ce qui devrait entraîner la main gauche ListView pour faire défiler quand la main droite un défile à l'écran par l'utilisateur. Malheureusement, cela ne marche pas.

J'ai eu un peu de google et il semble que le setSelectionFromTop() ne fonctionnera pas sur une liste qui est imbriquée à l'intérieur plus d'une mise en page.

Si c'est le cas, quelqu'un peut-il suggérer une manière de les faire défiler ensemble ou une autre façon de définir la mise en page ou à une autre technique tout à fait.

  • Avez-vous essayé smootHSCrollToPosition: developer.android.com/reference/android/widget/...
  • Merci pour la réponse rapide. Cependant, ce n'est pas la solution. Je suis à la recherche pour obtenir les listviews pour faire défiler bien ensemble.
  • vous avez la solution d'un même problème, je suis confronté.
InformationsquelleAutor s1ni5t3r | 2012-09-09