не пойму почему кнопки находятся поверх 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);
}