Виды не видны после добавления их в относительный макет программно - PullRequest
0 голосов
/ 06 июня 2019

Я создаю мероприятие, чтобы показать расписание. У меня есть список лекций, а также соответствующий день и продолжительность каждой лекции. Я пытаюсь раздувать составное представление из XML-файла макета, а затем добавляю раздутое представление к одной из относительных компоновок в массиве списков, где один элемент массива представляет один столбец или день. дней - массив относительных планировок. Приведенная ниже функция является членом действия и является логикой для добавления лекций. В зависимости от длины лекции я настраиваю высоту с помощью ViewGroup LayoutParams для карточки внутри вида, а затем добавляю вид в относительном макете с относительными параметрами макета. Но взгляды не отображаются.

Редактировать: Код работает нормально, проблема с массивом модельного класса.

Screenshot of the activity

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);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...