Почему бы Android не включить возможность ограничивать ячейки в макете сетки? Я прочитал несколько сообщений о нескольких способах сделать это. Один метод, который я пробовал с ограниченным успехом, приведен ниже. Моя проблема - разделитель горизонтальной линии. При выполнении с вертикальным и горизонтальным кодом моя сетка заканчивается заблокированными ячейками, поэтому текст в ячейке не виден. Если я уберу горизонтальный код, я получу идеальные вертикальные линии в каждом столбце, как и ожидалось. Любая идея о том, что не так. Я смог использовать тот же метод для создания линий сетки на столе. Макет сетки находится внутри горизонтальной прокрутки, которая находится внутри вертикальной прокрутки. Фон Gridlayout черный. Таким образом, я должен получить синие ячейки и черные разделительные линии.
for (int y = 0; y < rownum; y++) {
cols = 0;
while (cols < columnum) {
TextView textViewD = new TextView(this);
textViewD.setTextSize(18);
textViewD.setWidth(300);
textViewD.setHeight(75);
textViewD.setTextColor(Color.WHITE);
textViewD.setBackgroundColor(Color.BLUE);
textViewD.setText(title);
//CREATE VERTICAL DIVIDER LINES
View v = new View(this);
v.setLayoutParams(new ViewGroup.LayoutParams(3, ViewGroup.LayoutParams.MATCH_PARENT));
v.setBackgroundColor(Color.BLACK);
cols++;
gridLayoutE.addView(textViewD);
}
//CREATE HORIZONTAL DIVIDER LINES
View v1 = new View(this);
v1.setLayoutParams(new ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, 3));
v1.setBackgroundColor(Color.BLACK);
gridLayoutE.addView(v1);
}
Изменить: это то, что я нашел в другом сообщении об установке полей textView
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)textViewD.getLayoutParams(); params.setMargins(2, 2, 2, 2); textViewD.setLayoutParams (параметры);
У меня нет LinearLayout, когда я пытаюсь это сделать, он падает.