Pull to refresh

Comments 20

Честно говоря в этой реализации ничего удивительного нету, я бы даже назвал ее «наивной», так как по-другому и придумать сложно. Вот если бы ваш код был подкреплен графикой и в конце получился пример как на 1-м скриншоте Settings в стиле Holo. Вот это был бы прорыв… А так напоминает наброски и прототип, в рабочем варианте самому надо делать и можно обойтись меньшим кодом (1 класс на adapter) и определять section или нет instanceof из объекта.

Кстати непонятно зачем это весь огород с древовидными объектами, для этого можно заиспользовать имеющуюся абстракцию ExpandableListActivity и перегружать там методы (тем более там хорошо продокументированы и включены в API), единственное что сделать Section не скрываемыми ;)
Согласен, ничего удивительного :) Для графики не наделён художественными способностями, к сожалению )

У instanceof есть пара недостатков: если все элементы в массиве данных одного типа (String, например), непонятно как отличить одно от другого, также он не пойдёт, если источник данных не коллекция: Cursor, например.

ExpandableListActivity да, может сойти, но в него по-простому не засунуть разнородные данные, придётся так же переопределять getItemViewType.
Нет. Речь идёт об адаптере для списка. PreferenceActivity имеет подобный где-то в своих недрах, но не выводит его наружу. К тому же, ограничение на наследование от PreferenceActivity для эрана, для этого не предназначенного — сильное ограничение.
У PreferenceActivity куча недостатков:
1. Сделан только для settings и сильно связан с настройками.
2. Customise titlebar в подсекциях не сделать, а в главной с геморроем
3. Всякие динамические элементы с багами (даже если их возможное количество ограничено)

И самое главное! Google поменял стиль Settings на Holo (Gmail, System, ...), а PreferenceActivity как был гавном мамонта так и остался. Так что бежать думаю с него скорее…
А еще есть 2 уровневый список — ExpandableListView, замечательно кастомизируется под любой вид…
Да, Ваша правда.
Но в не него не положить разнородные данные (как на последнем скриншоте) без лишних телодвижений.
Как это нет, если да?
BaseExpandableListAdapter.getGroupType(int)

Причем, движений намного меньше чем в вашем примере.
Правда есть не большой минус — уровень апи 8.
Если ещё можно заголовки прятать и запрещать им «сворачиваться», то да, получился велосипед )
Не уловил вашу мысль. Работа с ExpandableListView, выглядит проще (меньше кода и костылей), чем ваш пример.
В ваших примерах не хватает для полноты картины самой activity, где адаптер будет наполняться данными.
В этом подходе, я так понимаю, нужно заранее разбить данные на группы и элементы.
Как этот подход будет себя вести в случае ленивай подгрузки данных?
Получим проблемы, нужно будет писать что то хитрое, либо держать n массивов и их после каждого обновления склеивать. Потому лучше это делать через ExpandableListView. Если апи8 не смущает.
все же какую популярность набирает dash… И это хорошо
Сории конечно, хочу спросить, а почему у меня приложения вот такой размытый вид имеют, и старую тему? Где это настраивается?

Планшет ASUS TF300T, Андроид 4.0.3, IntelliJ Idea 10.5, debian 6
Используйте темы android:style/Theme.Holo*, или если вы хотите Holo стиль на всех платформах — HoloEverywhere, я туда как-раз коммит подготавливаю:)
Спасибо, а что же по умолчанию не прописанно то?
Ладно, а почему разрешение низкое? Как сделать так, что бы нормально было, для планшетов а не для телефонов?
У вас приложение запущено в режиме совместимости, попробуйте задрать targetSdkVersion в манифесте, например, поставить targetSdkVersion=«16». Так же собрать со свежим сдк апи(16).

Подробности в документации. developer.android.com/guide/practices/screen-compat-mode.html
Sign up to leave a comment.

Articles