2017-07-21 4 views
0

Ich brauche so etwas wie eine Tabelle mit zwei Spalten und dynamische Nr. von Reihen (die entsprechend der Länge der Daten zunehmen und abnehmen, die ich empfange). Derzeit habe ich Listenansichten in einem horizontalen linearen Layout hinzugefügt, so dass es wie eine Tabelle aussieht. Aber das Problem ist sowohl das Scrollen der Listview ist unabhängig von anderen. Ich muss das Scrollen sperren, wenn ich scrolle, werden beide sich nicht unabhängig bewegen.Synchronisieren Scrollen von zwei ListViews in Android

Alle Daten in der Listenansicht sind schreibgeschützt (nur zur Anzeige).

Ist es möglich, die Scroll zu synchronisieren oder gibt es eine bessere Möglichkeit, meine Anforderungen zu erfüllen?

+0

Ihre Idee ist nicht die beiden Listenansichten zur gleichen Zeit zu bewegen? –

+0

Bitte schreiben Sie Ihren Code, damit wir verstehen, was Sie getan haben und Ihnen die Hilfe geben. –

Antwort

0

Wenn Sie die erste Listenansicht anhalten möchten, während Sie die zweite Liste scrollen, und umgekehrt. Stellen Sie dann den Scroll-Listener für die lsitviews ein und blocken Sie die andere Listenansicht. Hier ist beispielsweise

listview1.setOnScrollListener(new OnScrollListener() { 
      private int mLastFirstVisibleItem; 

      @Override 
      public void onScrollStateChanged(AbsListView view, int scrollState) { 

      if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) { 
       listview1.setEnabled(true); 
       listview2.setEnabled(true); 
       Log.i("a", "scrolling stopped..."); 
      } 

      } 

      @Override 
      public void onScroll(AbsListView view, int firstVisibleItem, 
        int visibleItemCount, int totalItemCount) { 

        listview2.setEnabled(false); 

      } 
     }); 

gleiche Art und Weise für die zweite Listenansicht

listview2.setOnScrollListener(new OnScrollListener() { 
     private int mLastFirstVisibleItem; 

     @Override 
     public void onScrollStateChanged(AbsListView view, int scrollState) { 

     if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) { 

      listview1.setEnabled(true); 
      listview2.setEnabled(true); 
      Log.i("a", "scrolling stopped..."); 
     } 

     } 

     @Override 
     public void onScroll(AbsListView view, int firstVisibleItem, 
       int visibleItemCount, int totalItemCount) { 

      listview1.setEnabled(false); 


     } 
    }); 
+0

Ich möchte nicht mit dem Scrollen einer der beiden Ansichten aufhören. Was ich brauche, ist das gleichzeitige Scrollen beider Listenansichten ohne Verwendung von Multitouch. So wird es wie ein Tisch aussehen, wenn ich scrolle. –

+0

Ok, dann können Sie in diesem https://stackoverflow.com/questions/12342419/android-scrolling-2-listviews-together oder https://stackoverflow.com/questions/8371743/scrolling-listviews-together?lq= nachsehen 1 –

+0

Vielen Dank. Dieser Thread hat mir geholfen, es zu erledigen. –

Verwandte Themen