我正在创建一个通知菜单(用于练习)。我创建了一个通知片段:
NotificationFragment(刚刚添加了第二个构造函数,并覆盖了 onCreateView):
class NotificationFragment {
private String name;
//the added constructor
public NotificationFragment(String name) {
this.name = name;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
View view = inflater.inflate(R.layout.notification_fragment, container, false);
view.setId(View.generateViewId());
return view;
}
}
在我的活动中,我有一个 ConstraintLayout(notification_layout) 和一个添加 NotificationFragments 的函数:
主要活动:
private List<Integer> notifications = new ArrayList<>();
public void onStart() {
notifications.clear();
parseNotifications();
}
public void parseNotifications() {
for(int i = 0; i < 10; i++) {
try {Thread.sleep(1000L);} catch(Exception ignored) {}
NotificationFragment notification = new NotificationFragment("not:" + i);
FrameLayout fl = new FrameLayout(this);
int last_id = (notifications.size() >= 1? notifications.get(notifications.size() - 1) : ConstraintSet.PARENT_ID);
int onSide = (last_id == ConstraintSet.PARENT_ID? ConstraintSet.TOP : ConstraintSet.BOTTOM);
int fl_id = View.generateViewId();
fl.setId(fl_id);
notification_layout.addView(fl);
ConstraintSet cs = new ConstraintSet();
cs.clone(notification_layout);
cs.connect(fl_id, ConstraintSet.TOP, last_id, onSide);
cs.applyTo(notification_layout);
notifications.add(fl_id);
}
}
这会显示第一个通知,但屏幕上没有任何变化
我认为通知相互重叠。
问题
1) why my ConstraintSet doesn't working?
2) how can i get it to work?