2017-04-17 81 views
0

我正在使用一個Feed風格的應用程序,其中用戶在可滾動的RecyclerView中有很多帖子。我還有另一個Activity,用戶轉到本質上是CalendarView,用戶可以從中選擇一個日期導航到RecyclerView。稍後再說。如何根據其中一項特性滾動到RecyclerView中的指定項目?

RecyclerView中的每個項目都是Post。該Post類看起來是這樣的:

public abstract class Post implements Comparable<Post> { 
    public String userId; 
    public Date date; 

    public Post() { 

    } 

    protected Post(String userId, Date date) { 
     this.userId = userId; 
     this.date = date; 
    } 

    @Override 
    public int compareTo(@NonNull Post o) { 
     return date.compareTo(o.date); 
    } 
} 

注意,所有的Post S的被他們的日期排序的RecyclerView內。他們排序,以便最近的帖子在頂部。

裏面我MainActivity的,我有以下的代碼來設置RecyclerView

myRecyclerView = (RecyclerView) findViewById(R.id.recycler_view); 
myRecyclerView.setHasFixedSize(false); 
layoutManager = new LinearLayoutManager(this); 
myRecyclerView.setLayoutManager(layoutManager); 
adapter = new SocialJournalAdapter(posts, this); 
myRecyclerView.setAdapter(adapter); 

myRecyclerViewRecyclerViewadapterRecyclerView.AdapterlayoutManagerRecyclerView.LayoutManager,並postsList<Post>

假設在其他日曆Activity內選擇的日期不一定是實際文章的日期,但可以是任何日期。因此,如果我的帖子日期爲2017年1月1日和2017年3月15日,並且我選擇2017年2月1日,RecyclerView會將日期爲2017年3月15日的帖子置頂,因爲它是該日期之後的第一個帖子。

this answer,我相信,一旦我有指標,我可以滾動它與layoutManager.scrollToPositionWithOffset(desiredIndex, 0);,但我還沒有測試了這一點,我真的不知道如何找到desiredIndex

設我知道你是否需要任何其他信息或更多我的代碼。

回答

0

你可能想scrollToPosition(desiredIndex)

要找到所需的索引,通過您的「帖子」看,因爲這是該RecyclerView顯示的數據。

相關問題