仿今日头条 、网易新闻、UC 的频道排序、移动
1. 创建
//创建置顶且默认选择标签ArrayList<Label> alwaySelectedLabels = newArrayList<>();
alwaySelectedLabels.add(newLabel(1, "Android"));
alwaySelectedLabels.add(newLabel(3, "Java"));
//创建默认选择标签ArrayList<Label> selectedLabels = newArrayList<>();
selectedLabels.add(newLabel(2, "IOS"));
selectedLabels.add(newLabel(4, "GO"));
...
//其他标签ArrayList<Label> unselectedLabels = newArrayList<>();
unselectedLabels.add(newLabel(9, "RxJava"));
unselectedLabels.add(newLabel(10, "Dagger2"));
...
//创建LabelSelectionFragment绑定到你的Activity即可labelSelectionFragment=LabelSelectionFragment.newInstance(selectedLabels, unselectedLabels,alwaySelectedLabels);
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.content_view, labelSelectionFragment)
.commit();2. 监听
给绑定LabelSelectionFragment的Activity实现OnEditFinishListener接口,即可监听数据变化
@OverridepublicvoidonEditFinish(ArrayList<Label> selectedLabels, ArrayList<Label> unselectedLabel, ArrayList<Label> alwaySelectedLabels) {
Logger.t("selectedLabels").e(selectedLabels);
Logger.t("unselectedLabel").e(unselectedLabel);
Logger.e(alwaySelectedLabels);
}3.处理返回按键
@OverridepublicbooleanonKeyDown(intkeyCode, KeyEventevent) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (labelSelectionFragment.cancelEdit()) {
returntrue;
}
}
returnsuper.onKeyDown(keyCode, event);
}