так я уже в уроке по GridView... Как сделать с помощью кнопочек и т.п.... я знаю.. я НЕ знаю как такие экраны профессионалы "строят". Просто, не покидает меня чувство что GridView - енто костыли для такой задачиAndreyI писал(а):Что мне вам посоветовать? Изучайте Андроид последовательно, выполните хотябы несколько первых уроков и вы сами все поймете.
Урок 57. GridView и его атрибуты
Re: Урок 57. GridView и его атрибуты
Re: Урок 57. GridView и его атрибуты
LinearLayout и RelativeLayout в 99% хватает что бы построить любое оформление для приложения. Вот с помощу них и делайте.
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 57. GridView и его атрибуты
Спасибо!rezak90 писал(а):LinearLayout и RelativeLayout в 99% хватает что бы построить любое оформление для приложения. Вот с помощу них и делайте.
Просто, я думал может есть какой-то ActivityPanelScreen или ActivityGroupScreen, в который можно передать список активити, задать свойства отображения ... и крекс-пекс-фекс.... главное не забыть полить из лужи с дождевой водой
Re: Урок 57. GridView и его атрибуты
ну так такое можно написать =)Просто, я думал может есть какой-то ActivityPanelScreen или ActivityGroupScreen, в который можно передать список активити, задать свойства отображения ... и крекс-пекс-фекс....
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 57. GridView и его атрибуты
Можно реализовать и через GridView , но это не является стандартом у профессионалов. Все зависит от задачи и дизайна проекта. Если у вас просто набор кнопок, то врядли это будет удобно, хотя и возможно. А если у вас к примеру куча картинок и при клике на картинку должно совершаться действие или запуск активити, то вполне возможно, что реализация через GridView будет удобнее и элегантнее.nubodroid писал(а):
так я уже в уроке по GridView... Как сделать с помощью кнопочек и т.п.... я знаю.. я НЕ знаю как такие экраны профессионалы "строят". Просто, не покидает меня чувство что GridView - енто костыли для такой задачи
Re: Урок 57. GridView и его атрибуты
Здравствуйте!
А можно как то зафиксировать верхнюю строку (типа заголовок) и левую колонку?
Спасибо!
А можно как то зафиксировать верхнюю строку (типа заголовок) и левую колонку?
Спасибо!
Re: Урок 57. GridView и его атрибуты
прорисовка в адаптере идёт линейно, слева на право, так что без костылей никак... можно в адаптере в зависимости от позиции отрисовывать нужную ячейку
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 57. GridView и его атрибуты
можно, только переопределение грида не поможет потому что ячейки отрисовывает адаптер, вот в нём и нужно реализовывать функционал, а высоту ячейки просто задаётся view.getLayoutParams.height = 100;
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 57. GridView и его атрибуты
смотрел исходники грида, то думаю придется переопределять метод onMeasure(). могу ошибаться.rezak90 писал(а):можно, только переопределение грида не поможет потому что ячейки отрисовывает адаптер, вот в нём и нужно реализовывать функционал, а высоту ячейки просто задаётся view.getLayoutParams.height = 100;
там алгоритм построения не гибкий.
http://stackoverflow.com/questions/1069 ... n-gridview
Re: Урок 57. GridView и его атрибуты
дело в том что если вы растяните (по вашему скрину выше) вторую ячейку, первая будет другого размера, но третья уже будет строится не за первой а на уровне второй, то есть между третьей и первой будет просвет, так как адаптер строит линейно, слева на право и gridview позиционирует по строкам а не столбцам. Думаю что переопределение onMeasure ничего не даст, проще написать свой контрол похожий на gridview
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 57. GridView и его атрибуты
да, именно так. вот в чем трабл.rezak90 писал(а):дело в том что если вы растяните (по вашему скрину выше) вторую ячейку, первая будет другого размера, но третья уже будет строится не за первой а на уровне второй, то есть между третьей и первой будет просвет, так как адаптер строит линейно, слева на право и gridview позиционирует по строкам а не столбцам. Думаю что переопределение onMeasure ничего не даст, проще написать свой контрол похожий на gridview
наверное придется создавать свой кастомный грид вью.
Спасибо за ответы!)
ЗЫ: другими словами мне надо враппер, аналогов не нашел. разве что https://github.com/ApmeM/android-flowlayout , но это не то. т.к. мне надо через адаптер лениво передавать вьюхи.
Re: Урок 57. GridView и его атрибуты
нашел реализацию https://github.com/maurycyw/StaggeredGridViewDemo
http://www.androidviews.net/ - всякие реализованные вкусняшки. даже от самих гугловцев
http://www.androidviews.net/ - всякие реализованные вкусняшки. даже от самих гугловцев
Re: Урок 57. GridView и его атрибуты
Делаю как написано в уроке:
Создаю файл rect.xml
А мне сразу выдает:
Дальше продолжать не могу. Так как ругается на это.
В чем может быть беда?
Спасибо!
Создаю файл rect.xml
Код: Выделить всё
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="#99000099"></solid>
</shape>
Код: Выделить всё
"<shape>" does not set the required layout_width attribute:
(1) Set to "wrap_content"
(2) Set to "match_parent"
"<shape>" does not set the required layout_height attribute:
(1) Set to "wrap_content"
(2) Set to "match_parent"
"<solid>" does not set the required layout_width attribute:
(1) Set to "wrap_content"
(2) Set to "match_parent"
"<solid>" does not set the required layout_height attribute:
(1) Set to "wrap_content"
(2) Set to "match_parent"
Exception raised during rendering: com.android.layoutlib.bridge.MockView cannot be cast to android.view.ViewGroup
You must supply a layout_width attribute.
You must supply a layout_height attribute.
Exception details are logged in Window > Show View > Error Log
The following classes could not be found:
- shape (Fix Build Path, Edit XML)
- solid (Fix Build Path, Edit XML)
В чем может быть беда?
Спасибо!
Re: Урок 57. GridView и его атрибуты
Добрый день.
Можно ли в GridView раскрасить строки или текст согласно определенного условия.
Например все строки белого цвета, а определенного зеленые и (или) красного.
Спасибо.
Можно ли в GridView раскрасить строки или текст согласно определенного условия.
Например все строки белого цвета, а определенного зеленые и (или) красного.
Спасибо.
Re: Урок 57. GridView и его атрибуты
пишется кастомный адаптер и там задаётся логикаsae74 писал(а):Добрый день.
Можно ли в GridView раскрасить строки или текст согласно определенного условия.
Например все строки белого цвета, а определенного зеленые и (или) красного.
Спасибо.
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 57. GridView и его атрибуты
Добрый день!
У меня вопрос следующего характера (так как Вы упомянули в уроке шейпинг элементов): почему при задании радиуса угла:
[syntax=xml]
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<gradient
android:angle="45"
android:endColor="#80FF00FF"
android:startColor="#FFFF0000" />
<corners
android:radius="1000dp" />
<padding
android:bottom="7dp"
android:left="7dp"
android:right="7dp"
android:top="10dp" />
<corners android:radius="8dp" />
</shape>
[/syntax]
чтоб я в этом атрибуте не прописывал, округлость прямоугольной фигуры достигает какого-то порогового значения и далее хоть 100dp, хоть 1000dp пиши - всё без изменений, хотя предполагал увидеть овалоподобный шейп (например на TextView)?
У меня вопрос следующего характера (так как Вы упомянули в уроке шейпинг элементов): почему при задании радиуса угла:
[syntax=xml]
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<gradient
android:angle="45"
android:endColor="#80FF00FF"
android:startColor="#FFFF0000" />
<corners
android:radius="1000dp" />
<padding
android:bottom="7dp"
android:left="7dp"
android:right="7dp"
android:top="10dp" />
<corners android:radius="8dp" />
</shape>
[/syntax]
чтоб я в этом атрибуте не прописывал, округлость прямоугольной фигуры достигает какого-то порогового значения и далее хоть 100dp, хоть 1000dp пиши - всё без изменений, хотя предполагал увидеть овалоподобный шейп (например на TextView)?
-
- Сообщения: 1
- Зарегистрирован: 19 июн 2013, 17:27
Re: Урок 57. GridView и его атрибуты
Подскажите пожалуйста, как в вашем примере, при клике по элементу GridView, выделить его?
Re: Урок 57. GridView и его атрибуты
Если немного переиграть пример решения поставленной задачи, данный в источнике Android gridview keep item selected, то, в принципе, я думаю это то, что Вам нужно.BlindShot96 писал(а):Подскажите пожалуйста, как в вашем примере, при клике по элементу GridView, выделить его?
Переигровка же в следующем (чтобы не дублить весь код из ссылки выше, даю изменяемые куски):
1.
[syntax=java5]
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
...
gvMain.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View v, int position, long arg3) {
if (myObjects.get(position).getState() == 1) {
myObjects.get(position).setState(0);
}
else{
myObjects.get(position).setState(1);
}
myAdapter.notifyDataSetChanged();
}
});
}
[/syntax]
2.
[syntax=java5]
private class MyCustomAdapter extends BaseAdapter {
...
@Override
public View getView(int position, View convertView, ViewGroup parent) {
...
if (object.getState() == 1) {
convertView.setBackgroundColor(Color.GREEN);
} else {
convertView.setBackgroundColor(0x99000099 /*Color.BLUE*/);
//convertView.setBackgroundDrawable(convertView.getResources().getDrawable(R.drawable.rect));
}
return convertView;
}
...
}
[/syntax]
Хотя тут бы ещё убрать стандартный селектор элементов GridView для полной красоты (или хотя бы цвет выделенного элемента взять как этот стандартный).
Разумеется для всего лишь такой цели можно было бы обойтись и без кастомизации адаптера, лишь меняя бэкграунд кликнутого элемента в обработчике onItemClick(...)
[syntax=java5]
((GridView)parent).getAdapter().getView(position, view, parent).setBackgroundColor(<цветовая схема>);
[/syntax]
но тогда надо позаботиться о схроне состояний этих элементов, чтобы корректен был checked/unchecked эффект.
Re: Урок 57. GridView и его атрибуты
Здравствуйте! А можно ли задать фиксированную ширину для первой ячейки одну, а для остальных другую?