@Digering

Почему CheckBox находятся под Button?

не пойму почему кнопки находятся поверх CheckBox хоть я и добавляю их в FrameLayout после кнопок. Знаю что можно использовать LinearLayout, но т.к. у меня кнопки с закруглением, то это сильно будет бросаться в глаза, так что желательно этого избежать. Проверял через xml код, работать долно... вроде как
// Функция для создания кнопок категорий
    private void createCategoryButtons(ArrayList<String> categories, LinearLayout listBottom, LinearLayout ListBottomUsers) {

        createExpandableButton("NGSL", new String[]{"NGSL 1-100", "NGSL 101-1000", "NGSL 1001 - 3000"}, listBottom);
        createExpandableButton("OXFORD", new String[]{"OXFORD 3000 - A1", "OXFORD 3000 - A2", "OXFORD 3000 - B1", "OXFORD 3000 - B2", "OXFORD 5000 - B2", "OXFORD 5000 - C1"}, listBottom);

        for (String categoryName : categories) {

            if (categoryName.contains("NGSL") || categoryName.contains("Oxford")) {
                continue;
            }
            FrameLayout myLinearLayout = new FrameLayout(getContext());
            myLinearLayout.setLayoutParams(new FrameLayout.LayoutParams(
                    FrameLayout.LayoutParams.MATCH_PARENT,
                    FrameLayout.LayoutParams.WRAP_CONTENT));

            // Создаем чекбокс
            CheckBox checkBox = new CheckBox(getContext());
            // Установка параметров макета для чекбокса
            checkBox.setLayoutParams(new FrameLayout.LayoutParams(
                    140,
                    140, Gravity.END | Gravity.CENTER_VERTICAL));
            FrameLayout.LayoutParams checkBoxParams = (FrameLayout.LayoutParams) checkBox.getLayoutParams();
            checkBox.setLayoutParams(checkBoxParams);
            checkBox.setBackgroundResource(R.color.system_Bottom_fon_DayNight);
//            checkBox.setBackgroundColor(Color.TRANSPARENT);

            Button button = new Button(getContext());

            String[] parts = categoryName.split(" ", 2);
            int number = Integer.parseInt(parts[0]);

            button.setText(parts[1]);

            Log.d("Category", "NO Skipping duplicate: " + parts[1]);

            // Установка фона в зависимости от имени категории
            if (parts[1].equals("Юриспруденция")) {
                button.setBackgroundResource(R.drawable.radius_bottom);
            } else if(parts[1].equals("Свои слова")){
                button.setBackgroundResource(R.drawable.rounded_button);
            }else {
                button.setBackgroundResource(R.drawable.ripple_effect);
            }

            Drawable background = button.getBackground();
            background.setColorFilter(Color.parseColor("#2F2F2F"), PorterDuff.Mode.SRC_IN);

            // Установка размера текста
            button.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16);

            // Установка параметров макета для кнопки
            button.setLayoutParams(new FrameLayout.LayoutParams(
                    FrameLayout.LayoutParams.MATCH_PARENT,
                    ViewGroup.LayoutParams.WRAP_CONTENT));
            FrameLayout.LayoutParams buttonParams = (FrameLayout.LayoutParams) button.getLayoutParams();
            buttonParams.setMargins(0, 3, 0, 3); // Задание отступов (layout_marginVertical)
            button.setLayoutParams(buttonParams);
            button.setAllCaps(false);

            // Добавляем кнопку и чекбокс в контейнер
            myLinearLayout.addView(button);
            myLinearLayout.addView(checkBox);

            if (number >= 60){
                ListBottomUsers.addView(myLinearLayout);

            }else {
                listBottom.addView(myLinearLayout);

            }
        }

        // Добавление дополнительного пространства
        View spaceView = new View(getContext());
        LinearLayout.LayoutParams spaceParams = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.MATCH_PARENT, 150); // Высота дополнительного пространства, в пикселях

        listBottom.addView(spaceView, spaceParams);

    }
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы