0

私はユーザーがスクロール可能なRecyclerViewの投稿をたくさん持っているフィードスタイルのアプリを開発しています。私は別のActivityを持っています。ユーザーはそれが本質的にCalendarViewで、ユーザーはRecyclerViewにナビゲートするための日付を選択できます。これについては後で詳しく説明します。アイテム特性の1つに基づいてRecyclerView内の指定されたアイテムにスクロールするにはどうすればよいですか?

RecyclerViewの各項目は、Postです。 Postクラスには、次のようになります。Post Sの全てがRecyclerViewの内側にそれぞれの日付によって並べ替えられてい

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); 
    } 
} 

注意。最新の投稿が一番上に並ぶようにソートされます。 myRecyclerViewRecyclerViewある

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); 

は、adapterlayoutManagerRecyclerView.LayoutManagerで、RecyclerView.Adapterあり、そしてpostsList<Post>です:私のMainActivityの内部

、私はRecyclerViewを設定するには、次のコードを持っています。

他のカレンダーActivityの中で選択された日付は、必ずしも実際の投稿の日付ではなく、任意の日付である可能性があるとします。したがって、2017年1月1日と2017年3月15日の投稿があり、2017年2月1日を選択すると、RecyclerViewは、その日の後の最初の投稿であるため、2017年3月15日の投稿を先頭に置きます。 this answerから

は、私は、インデックスを持っていたら、私はlayoutManager.scrollToPositionWithOffset(desiredIndex, 0);でそれにスクロールできると信じているが、私はこれをテストしていない、と私は本当にdesiredIndex

レッツを見つける方法がわかりませんあなたが他の情報や私のコードを必要とするかどうかは私には分かります。

答えて

0

あなたはおそらく、これはそのRecyclerViewが表示データであるため、scrollToPosition(desiredIndex)

は、あなたの「記事」に目を通し、必要なインデックスを見つけたいです。

関連する問題