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

Обсуждение уроков
Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

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

Сообщение damager82 » 16 фев 2012, 03:00

В этом уроке:

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

[url=http://www.startandroid.ru/ru/uroki/vse ... l:2quetmuv]Click here to read this article![/url:2quetmuv]
Последний раз редактировалось damager82 08 май 2017, 16:02, всего редактировалось 4 раза.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

NobodyCallMeChicken
Сообщения: 17
Зарегистрирован: 27 фев 2012, 10:53

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

Сообщение NobodyCallMeChicken » 06 мар 2012, 06:42

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

Изображение

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

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

Сообщение damager82 » 06 мар 2012, 13:54

Обратите внимание на его настройки. Он по дефолту там три прописывает )
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Andy_NTG
Сообщения: 6
Зарегистрирован: 29 мар 2012, 12:06

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

Сообщение Andy_NTG » 29 мар 2012, 12:11

Как сэмулировать выделение всей строки при нажатии на ней, как в ListView на C#?

Amra Kimmerian
Сообщения: 2
Зарегистрирован: 21 апр 2012, 09:11

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

Сообщение Amra Kimmerian » 22 апр 2012, 09:35

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

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

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

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

Сообщение KamiSempai » 22 апр 2012, 19:17

У GridView есть свойство "scrollbars". Может стоит попробовать что-то сделать с ним?
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Amra Kimmerian
Сообщения: 2
Зарегистрирован: 21 апр 2012, 09:11

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

Сообщение Amra Kimmerian » 23 апр 2012, 18:40

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

3Gern
Сообщения: 25
Зарегистрирован: 30 июл 2012, 13:32

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

Сообщение 3Gern » 06 авг 2012, 16:08

можно ли объединить ячейки?
можно ли нарисовать нижнею границу?

math64
Сообщения: 235
Зарегистрирован: 16 июл 2012, 07:47

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

Сообщение math64 » 06 авг 2012, 18:24

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

3Gern
Сообщения: 25
Зарегистрирован: 30 июл 2012, 13:32

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

Сообщение 3Gern » 06 авг 2012, 19:40

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

math64
Сообщения: 235
Зарегистрирован: 16 июл 2012, 07:47

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

Сообщение math64 » 07 авг 2012, 07:31

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.

3Gern
Сообщения: 25
Зарегистрирован: 30 июл 2012, 13:32

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

Сообщение 3Gern » 07 авг 2012, 09:16

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

math64
Сообщения: 235
Зарегистрирован: 16 июл 2012, 07:47

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

Сообщение math64 » 07 авг 2012, 09:40

Ты, наверно, не понял - 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 - надеюсь, сам сделаешь.
Последний раз редактировалось math64 07 авг 2012, 15:53, всего редактировалось 1 раз.

3Gern
Сообщения: 25
Зарегистрирован: 30 июл 2012, 13:32

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

Сообщение 3Gern » 07 авг 2012, 15:32

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

math64
Сообщения: 235
Зарегистрирован: 16 июл 2012, 07:47

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

Сообщение math64 » 07 авг 2012, 15:52

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

3Gern
Сообщения: 25
Зарегистрирован: 30 июл 2012, 13:32

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

Сообщение 3Gern » 08 авг 2012, 19:59

не могу понять, не получается ((

nubodroid
Сообщения: 28
Зарегистрирован: 19 ноя 2012, 08:20

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

Сообщение nubodroid » 25 ноя 2012, 14:19

Всем доброго времени суток!!!

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

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

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

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

Сообщение rezak90 » 25 ноя 2012, 15:31

вас интересует то как легче разместить кнопки на экране?
R.id.team
Политика на форуме запрещена

nubodroid
Сообщения: 28
Зарегистрирован: 19 ноя 2012, 08:20

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

Сообщение nubodroid » 25 ноя 2012, 16:14

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

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

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

AndreyI
Сообщения: 372
Зарегистрирован: 14 май 2012, 16:18

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

Сообщение AndreyI » 25 ноя 2012, 16:42

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

Ответить