我正在爲我正在創建的應用程序構建通知列表,我無法找到一種方法從服務器獲取我的通知列表,並在RecyclerView的單獨列表中顯示它們。最終的產品將顯示通知的頁眉名單最近通知和之前的通知,一拉:如何對recyclerview中的列表項進行分類?
<RECENT HEADER>
<NOTIF-1>
<NOTIF-2>
<OLDER HEADER>
<NOTIF-3>
<NOTIF-4>
<NOTIF-5>
<NOTIF-6>
除了代替尖括號文字是代表那些實際的意見,完整的圖片,實際通知的詳細信息,並分頻器。
我已經有一個顯示他們在一個RecyclerView代碼:
XML:
<!-- Main layout -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include layout="@layout/include_toolbar"/>
<RelativeLayout
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/notification_swipe_refresh"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.mapjungle.mymoose.ui.widget.EmptyRecyclerView
android:id="@+id/notification_list"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</android.support.v4.widget.SwipeRefreshLayout>
</RelativeLayout>
</LinearLayout>
的Java:
@InjectView(R.id.notification_list) RecyclerView mRecyclerView;
@Inject Picasso mPicasso;
@Inject NotificationService mUserService;
private NotificationAdapter mAdatper;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_notifications);
ButterKnife.inject(this);
setTitle("Notifications");
mAdatper = new NotificationAdapter(mPicasso);
mRecyclerView.addItemDecoration(new HorizontalDividerItemDecoration.Builder(this)
.color(getResources().getColor(R.color.secondary_color))
.size(1)
.build());
final LinearLayoutManager layoutManager = new LinearLayoutManager(this);
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
mRecyclerView.setLayoutManager(layoutManager);
mRecyclerView.setAdapter(mAdatper);
updateList();
}
@Override
protected int getSelfNavDrawerItem() {
return NAVDRAWER_ITEM_PHOTO_POST;
}
public void updateList() {
mUserService.getNotifications(new Callback<List<Notification>>() {
@Override
public void success(List<Notification> notificationList, Response response) {
mAdatper.replaceWith(notificationList);
}
@Override
public void failure(RetrofitError error) {
Timber.e(error, "Failed to load notifications...");
}
});
}
這一切工作細到足以顯示所有通知和他們的'按照從最新到最舊的順序排序。但是每個都有一個布爾屬性「已確認」,如果用戶之前沒有看到它們,則設置爲false。我想把這個列表分成兩組,我使用這個標記解釋過,但是我不知道如何將這些列表放入標題中。我曾想過創建Notification的子類來創建NotificationHeader視圖,並將它們插入到適當的列表中,但對我來說,這只是一種sl sl。我也考慮過做兩個回收站的意見,一個是針對新的和另一個針對舊的,但在視覺上,這並沒有按照我想要的方式工作(我沒有證實,但它看起來像每個回收者視圖獨立滾動別人,我不想要的東西)。有什麼建議麼?
我知道創建特殊通知頭的第一個想法可能會起作用,我之前做過類似的事情,但這只是一種不好的做法。
嘿,我試圖得到類似的做了。你有可能發佈代碼嗎?謝謝! – gdubs
發表:)我也解釋了我在做什麼。希望它有助於/不要太冗長。 – Andrew