Страница 1 из 3

Урок 57. GridView и его атрибуты

Добавлено: 16 фев 2012, 03:00
damager82
В этом уроке:

- используем GridView

[url=http://www.startandroid.ru/ru/uroki/vse ... l:2quetmuv]Click here to read this article![/url:2quetmuv]

Re: Урок 57. GridView и его атрибуты

Добавлено: 06 мар 2012, 06:42
NobodyCallMeChicken
Вы пишите что по умолчанию GridView, если не задавать количество столбцов, отобразит все в одном столбце. У меня почему то по умолчанию их оказалось три. Интересно с чем связано такое поведение.

Изображение

Re: Урок 57. GridView и его атрибуты

Добавлено: 06 мар 2012, 13:54
damager82
Обратите внимание на его настройки. Он по дефолту там три прописывает )

Re: Урок 57. GridView и его атрибуты

Добавлено: 29 мар 2012, 12:11
Andy_NTG
Как сэмулировать выделение всей строки при нажатии на ней, как в ListView на C#?

Re: Урок 57. GridView и его атрибуты

Добавлено: 22 апр 2012, 09:35
Amra Kimmerian
В референсе написано, что Grid View это "A view that shows items in two-dimensional scrolling grid". Хотелось бы отметить что scrolling не является "two-dimensional".
Сделал урок с собаками по ссылке и чтобы ячейки выходили за край экрана не только снизу но и справа поменял немного параметры:
1. stretchMode="none"
2. numColumns="6"
3. массив фоток удвоил.

Scrolling так и остался только вертикальным.
Если я что-то не так сделал - поправьте меня.

Re: Урок 57. GridView и его атрибуты

Добавлено: 22 апр 2012, 19:17
KamiSempai
У GridView есть свойство "scrollbars". Может стоит попробовать что-то сделать с ним?

Re: Урок 57. GridView и его атрибуты

Добавлено: 23 апр 2012, 18:40
Amra Kimmerian
Да, действительно. Его значение может быть "vertical", "horizontal" или "none" - сразу в двух направлениях нельзя. При этом для GridView "horizontal" и "none" не имеет никаких эффектов, виджет все равно скроллится вертикально.

Re: Урок 57. GridView и его атрибуты

Добавлено: 06 авг 2012, 16:08
3Gern
можно ли объединить ячейки?
можно ли нарисовать нижнею границу?

Re: Урок 57. GridView и его атрибуты

Добавлено: 06 авг 2012, 18:24
math64
чтобы были обе полосы прокутки, используйте горизонтальный ScrollView, а в него положите GridView.
Объединить ячейки нельзя - используйте TableLayout для этого.
Для того, чтобы нарисовать границы между ячейками - используйте background для задиния цвета, horizontalSpacing, verticalSpacing, margin или padding - для задания толщины линий.

Re: Урок 57. GridView и его атрибуты

Добавлено: 06 авг 2012, 19:40
3Gern
math64 писал(а):Объединить ячейки нельзя - используйте TableLayout для этого.
Для того, чтобы нарисовать границы между ячейками - используйте background для задиния цвета, horizontalSpacing, verticalSpacing, margin или padding - для задания толщины линий.
и как мне использовать TableLayout? Лучше давайте расскажу о том что хочу сделать а вы может дадите мне совет как лучше это реализовать:
Обычная таблица из 2-х столбцов название и описание, так вот попробовал использовать GridView оказалось ячейки в строках не зависят друг-от друга, у меня таблица в итого должна быть примерно вот такой
Изображение

Re: Урок 57. GridView и его атрибуты

Добавлено: 07 авг 2012, 07:31
math64
1. Влезает всё в экран? - если нет нужно использовать ScrollView. (Если нужна и горизонтальная, и вертикальная прокрутки - два ScrollView)
2. Первые строки - это заголовок? - если да, он не должен включён в вертикальный ScrollView. В этом случае используется два TableLayout, а ширина столбцов задаётся фиксированными значениями, весами, или вычисляется программно.
3. Горизональные линии в данном случае проще задать с помощью View с чёрным фоном, высотой 1dp, шириной fill_parent.
4. Сам TableLayout устроен аналогично тегу <table> в html - внутри TableRow, внутри которых можешь разместить TextView.
Обединять только колонки - аттрибуты android:layout_column и android:layout_span.
В твоё случае нужно объединять строки - используй LinearLayout вертикальной ориентации с двумя TextView внутри.
Для первой колонки - один TextView, используй android:layout_gravity для размещения его внизу, по центру или вверху.
5. Если нужно динамически заполнять данными - возможно, проще использовать ListView.
Шаблон для ячейки - горизонтальный LinearLayout, в котором находятся вертикальные LinearLayout, в которых TextView.

Re: Урок 57. GridView и его атрибуты

Добавлено: 07 авг 2012, 09:16
3Gern
math64 писал(а):В твоё случае нужно объединять строки - используй LinearLayout вертикальной ориентации с двумя TextView внутри.
Для первой колонки - один TextView, используй android:layout_gravity для размещения его внизу, по центру или вверху.
5. Если нужно динамически заполнять данными - возможно, проще использовать ListView.
Шаблон для ячейки - горизонтальный LinearLayout, в котором находятся вертикальные LinearLayout, в которых TextView.
вот что получилось
Изображение
вот так вот я разместил layout-ы
Изображение
все равно друг от друга не зависят, щяс попробую с таблицей.

Re: Урок 57. GridView и его атрибуты

Добавлено: 07 авг 2012, 09:40
math64
Ты, наверно, не понял - listView один, на все колонки. А вот каждая ячейка состоит из нескольких колонок.

Код: Выделить всё

public class Row {
	String column1. column2_1, column_2_2;
	public toString() { return column1; }
}
listView.setAdapter(new ArrayAdapter<Row>(this, R.layout.row_layout, R.id.textView1, rows) {
	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		Row row = getItem(position);
	        View view = super.getView(position, convertView, parent);
		TextView textView2_1 = (TextView)view.findViewById(R.id.textView2_1);
		textView2_1.setText(row.column2_1);
		TextView textView2_2 = (TextView)view.findViewById(R.id.textView2_2);
		textView2_1.setText(row.column2_2);
	}
});
row_layout.xml - надеюсь, сам сделаешь.

Re: Урок 57. GridView и его атрибуты

Добавлено: 07 авг 2012, 15:32
3Gern
math64
можете весь код активити дать? что то у меня не получается, эклипс ругается на вот эту строчку
listView.setAdapter(new ArrayAdapter<Row>(this, R.layout.row_layout, R.id.textView1, rows)

Re: Урок 57. GridView и его атрибуты

Добавлено: 07 авг 2012, 15:52
math64
Там должна быть фигурная скобка, создаём не ArrayAdapter<Row>, а анонимный класс, производный от него и переопределяем метод.
После соответствующей фигурной скобки я пропустил закрывающую круглую.
setAdapter() вызывается в методе onCreate() - смотри урок про ArrayAdapter.
Вместо ArrayAdapter можно использовать SimpleAdapter или CursorAdapter (если данные берутся из базы данных).
Вместо анонимного класса можно использовать обычный - синтаксис у анонимного класса не очень красивый.

Re: Урок 57. GridView и его атрибуты

Добавлено: 08 авг 2012, 19:59
3Gern
не могу понять, не получается ((

Re: Урок 57. GridView и его атрибуты

Добавлено: 25 ноя 2012, 14:19
nubodroid
Всем доброго времени суток!!!

Вопрос: я хочу из главного окна приложения запускать другие активити.... Кол-во кнопок для запуска других активити постоянно. Мне нужно чтобы вид был как в главном окне ...т.е., там где контакты, всякие приложения и т.д. и т.п. Вопрос собственно вот в чем... ЭТО делается с помощью GridView? Или есть какой-то другой способ? Точнее, меня волнует КАК ПРАВИЛЬНО ЭТО делается. Просто, на данный момент у меня в голове только два варианта:
1) GridView
2) Статически разместить кнопочки на экране

Всем заранее спасибо

Re: Урок 57. GridView и его атрибуты

Добавлено: 25 ноя 2012, 15:31
rezak90
вас интересует то как легче разместить кнопки на экране?

Re: Урок 57. GridView и его атрибуты

Добавлено: 25 ноя 2012, 16:14
nubodroid
rezak90 писал(а):вас интересует то как легче разместить кнопки на экране?
Не-не... меня интересует как правильно это делается... т.е. как вообще люди это делают. Просто, разместил в этой ветке вопрос, т.к. думал что может это делается с помощью GridView.

Просто, я не знаю.. может для этих целей существует вообще другой метод.... а использоание GridView - то костыльный метод.

Может я не совсем четко сформулировал вопрос... в общем.. еще раз... Вы включаете телефон и там куча программ... вот мне надо чтобы у меня было то же самое... только вместо кучи программ в моем mainActivity были кнопочки к моим активити....

Re: Урок 57. GridView и его атрибуты

Добавлено: 25 ноя 2012, 16:42
AndreyI
Что мне вам посоветовать? Изучайте Андроид последовательно, выполните хотябы несколько первых уроков и вы сами все поймете.