Я создаю мероприятие, чтобы показать расписание. У меня есть список лекций, а также соответствующий день и продолжительность каждой лекции. Я пытаюсь раздувать составное представление из XML-файла макета, а затем добавляю раздутое представление к одной из относительных компоновок в массиве списков, где один элемент массива представляет один столбец или день.
дней - массив относительных планировок. Приведенная ниже функция является членом действия и является логикой для добавления лекций. В зависимости от длины лекции я настраиваю высоту с помощью 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);
}
}