5

einen Zweiweg scrollbaren Gridlayout für eine TV-AppVermeiden von ersten Zeile scrollen und die erste Spalte in recyclerview gridlayoutmanager

Ansicht Struktur von Layout-Datei

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="#021257" 
android:orientation="vertical"> 

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

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

     <android.support.v7.widget.RecyclerView 
      xmlns:app="http://schemas.android.com/apk/res-auto" 
      android:id="@+id/rvThumbnail" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="#021257" 
      android:orientation="vertical"/> 


    </LinearLayout> 
</HorizontalScrollView> 
</LinearLayout> 

, so habe ich eine gridlayoutmanager verwendet geführt (Orientierung vertikal) und Spancount ist 49 (24 Stunden * 2) +1 für Bilder, die Spalte anzeigen. Die erste Reihe ist in halbe Stunde Schlitze Timeline unterteilt anzuzeigen und ersten SpalteKanäle angezeigt ist, wird jeder Kanal seine eigenen Programme unter unterschiedlichen Zeitschlitzen ausgeführt wird. Jetzt, da ich es geschafft habe, das Raster in beiden Richtungen zu scrollen, habe ich jetzt noch zwei Dinge zu tun.

Image of above description

1) Wenn horizontal gescrollt, auch die Kanäle Spalte (erste Spalte) gescrollt wird und somit verdeckt wird (es hat allerdings vertikal zu bewegen, da es mehr als 20 Kanäle). Jetzt muß ich diese Spalte statisch wen machen Scrollen horizontal und andere Spalten ruhen müssen in der Regel

2) bewegen Wenn vertikal gescrollt, die Timeline-Reihe (erste Reihe) auch gescrollt wird und somit versteckt wird (es hat horizontal scrollen obwohl die Reihe 24 Stunden anzeigen muss). Jetzt muss ich diese Zeile statisch machen, wenn ich vertikal scrollen muss, und andere Zeilen müssen normal scrollen.

Ist das möglich? Ich schätze Ihre Hilfe

+0

Haben Sie versucht das https://stackoverflow.com/a/26573338/5492047 –

+0

Ja ich ausprobiert habe. – DJphy

+0

Koordinator Layout + Layout-Verhalten ist Ihre Lösung für diese Art von UI – Bhargav

Antwort

6

Die Machbar Ansatz wird für das Timing mit drei Recycling-Ansicht

a) Vertikale recycle Ansicht für die Kanalübersicht

b) Horizontale recycle Ansicht gehen

c Auflistung) Recycle Ansicht mit Raster-Layout-Manager für die Daten

Verwendung scrollChange Zuhörer von Gittern recycle Ansicht (Recycle Ansicht für Daten verwendet)

/** 
* Use scroll values 
*/ 
public void setScroll() { 
    mDataRecycleView.setOnScrollChangeListener(new View.OnScrollChangeListener() { 
     @Override 
     public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) { 
      //you can now play on scroll value of this recycle view and change the scroll value of other recycle views. 

    // you can get your view here and also know the value of view so based on value you can handle it here so it's very easy. 
     } 
    }); 
} 

Versuchen Sie und lassen Sie mich wissen, wenn dieser Ansatz für Sie funktioniert und inkase jede Abfrage dann Kommentar unten, damit wir Ihr Problem lösen können.

+0

Ich habe dies getan, die Ziel-Recyclerview-Scroll-Fehler – DJphy

+0

Dies ist ein guter Weg, um dieses Problem zu lösen. –

2

Versuchen TableView Projekt von Github.

Tableview ist eine leistungsfähige Android-Bibliothek für komplexe Datenstrukturen Anzeige und Wiedergabe von Tabellendaten aus Zeilen zusammen, Spalten und Zellen. TableView basiert auf einem separaten Modellobjekt, das gehalten werden soll, und stellt die Daten dar, die es anzeigt. Dieses Repository enthält auch eine Beispielanwendung , die entwickelt wurde, um Ihnen zu zeigen, wie Sie Ihre eigene TableView in Ihre Anwendung erstellen.

Holen Sie sich das Konzept aus diesem Projekt und ändern Sie, was Sie wollen.

Hoffnung diese Erklärung hilft Ihnen :)

Verwandte Themen