2017-12-20 109 views
5

Tạo một hai chiều GridLayout cuộn cho một ứng dụng TVTránh di chuyển của hàng đầu tiên và cột đầu tiên trong recyclerview gridlayoutmanager

xem cấu trúc từ file layout

<?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> 

vì vậy tôi đã sử dụng một gridlayoutmanager (định hướng dọc) và spancount là 49 (24 giờ mỗi ngày * 2) +1 cho hình ảnh hiển thị cột. Các đầu tiên hàng là để hiển thị timeline chia thành khe nửa giờ và cột đầu tiên là để hiển thị kênh, mỗi kênh sẽ có các chương trình riêng của mình chạy dưới các khe thời gian khác nhau. Bây giờ tôi đã đạt được để di chuyển gridlayout cả hai cách, bây giờ tôi có hai điều nữa để làm.

Image of above description

1) Khi cuộn theo chiều ngang, cột kênh (cột đầu tiên) cũng được cuộn và do đó bị ẩn (nó phải cuộn theo chiều dọc mặc dù, vì có thể có hơn 20 kênh). Bây giờ tôi cần phải làm cho cột này tĩnh cuộn cuộn theo chiều ngang và các cột còn lại khác phải cuộn bình thường

2) Khi cuộn theo chiều dọc, hàng dòng thời gian (hàng đầu tiên) cũng bị cuộn và bị ẩn đi (nó phải cuộn theo chiều ngang) mặc dù, vì hàng phải hiển thị 24 giờ). Bây giờ tôi cần phải làm cho hàng này tĩnh wen di chuyển theo chiều dọc và phần còn lại các hàng khác phải di chuyển bình thường.

Điều này có thể đạt được không? Tôi đánh giá cao sự giúp đỡ của bạn

+0

Các bạn đã thử này https://stackoverflow.com/a/26573338/5492047 –

+0

Có, tôi đã cố gắng. – DJphy

+0

Bố trí phối hợp + hành vi bố cục là giải pháp của bạn đối với loại giao diện người dùng – Bhargav

Trả lời

6

Cách tiếp cận khả thi sẽ đi với ba xem rác

a) xem rác dọc cho kênh niêm yết

b) xem rác ngang cho Thời gian niêm yết

c) Recycle chế độ xem với trình quản lý bố cục lưới cho dữ liệu

Sử dụng cuộnChuyển đổi danh sách chế độ xem lưới tái chế (Chế độ xem thùng rác được sử dụng cho dữ liệu)

/** 
* 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. 
     } 
    }); 
} 

Hãy thử và cho tôi biết nếu cách tiếp cận này phù hợp với bạn và có bất kỳ truy vấn nào sau đó nhận xét bên dưới để chúng tôi có thể giải quyết được sự cố của bạn.

+0

Tôi đã thực hiện việc này, mục đích di chuyển mục tiêu recyclerview misbehaves – DJphy

+0

Đây là cách tốt để giải quyết vấn đề này. –

2

Hãy thử TableView dự án từ Github.

TableView là một thư viện Android mạnh mẽ để hiển thị dữ liệu phức tạp cấu trúc và render dữ liệu bảng gồm các hàng, cột và tế bào. TableView dựa trên một đối tượng mô hình riêng biệt để giữ và đại diện cho dữ liệu mà nó hiển thị. Kho lưu trữ này cũng chứa một ứng dụng mẫu được thiết kế để chỉ cho bạn cách tạo TableView của riêng bạn trong ứng dụng của bạn.

Lấy ý tưởng từ dự án này và sửa đổi những gì bạn muốn.

Hope lời giải thích này sẽ giúp bạn :)

Các vấn đề liên quan