我正在创建一个活动以显示时间表。我有一个讲座列表,以及每个讲座的日期和持续时间。我正在尝试从布局xml文件中填充复合视图,然后将已填充的视图添加到arraylist中的相对布局之一,其中arraylist的一个元素代表一栏或一天。 days是相对布局的数组列表。下面的功能是活动的成员,并且是添加讲座的逻辑。根据讲座的时间长度,我使用ViewGroup LayoutParams为视图内的卡片调整高度,然后将视图添加到具有相对布局参数的相对布局中。但是视图没有显示出来。
编辑:代码运行正常,模型类的数组列表有问题。
private void addTimeTableViews(){
for (LectureModel lecture : lectures) {
LayoutInflater inflater = LayoutInflater.from(this);
int currentDay = lecture.getDayOfTheWeek();
RelativeLayout layout = days.get(currentDay);
View view = inflater.inflate(R.layout.layout_tt_box, layout);
int boxHeight = getTimeDifference(lecture.getStartTime(),lecture.getEndTime());
//to adjust height of the card according to length of lecture
MaterialCardView card = view.findViewById(R.id.tt_box_card);
int cardWidth = card.getLayoutParams().width;
ViewGroup.LayoutParams cardParams = new ViewGroup.LayoutParams(cardWidth, boxHeight - 4);
card.setLayoutParams(cardParams);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT
);
params.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE);
params.topMargin = getTimeInMinutes(lecture.getStartTime());
layout.addView(view, params);
}
}