Comments 20
Честно говоря в этой реализации ничего удивительного нету, я бы даже назвал ее «наивной», так как по-другому и придумать сложно. Вот если бы ваш код был подкреплен графикой и в конце получился пример как на 1-м скриншоте Settings в стиле Holo. Вот это был бы прорыв… А так напоминает наброски и прототип, в рабочем варианте самому надо делать и можно обойтись меньшим кодом (1 класс на adapter) и определять section или нет instanceof из объекта.
Кстати непонятно зачем это весь огород с древовидными объектами, для этого можно заиспользовать имеющуюся абстракцию ExpandableListActivity и перегружать там методы (тем более там хорошо продокументированы и включены в API), единственное что сделать Section не скрываемыми ;)
Кстати непонятно зачем это весь огород с древовидными объектами, для этого можно заиспользовать имеющуюся абстракцию ExpandableListActivity и перегружать там методы (тем более там хорошо продокументированы и включены в API), единственное что сделать Section не скрываемыми ;)
Согласен, ничего удивительного :) Для графики не наделён художественными способностями, к сожалению )
У instanceof есть пара недостатков: если все элементы в массиве данных одного типа (String, например), непонятно как отличить одно от другого, также он не пойдёт, если источник данных не коллекция: Cursor, например.
ExpandableListActivity да, может сойти, но в него по-простому не засунуть разнородные данные, придётся так же переопределять getItemViewType.
У instanceof есть пара недостатков: если все элементы в массиве данных одного типа (String, например), непонятно как отличить одно от другого, также он не пойдёт, если источник данных не коллекция: Cursor, например.
ExpandableListActivity да, может сойти, но в него по-простому не засунуть разнородные данные, придётся так же переопределять getItemViewType.
Эммм, я прошу простить, если ошибаюсь, но PreferenceActivity не подойдет?
developer.android.com/reference/android/preference/PreferenceActivity.html
developer.android.com/reference/android/preference/PreferenceActivity.html
Нет. Речь идёт об адаптере для списка. PreferenceActivity имеет подобный где-то в своих недрах, но не выводит его наружу. К тому же, ограничение на наследование от PreferenceActivity для эрана, для этого не предназначенного — сильное ограничение.
У PreferenceActivity куча недостатков:
1. Сделан только для settings и сильно связан с настройками.
2. Customise titlebar в подсекциях не сделать, а в главной с геморроем
3. Всякие динамические элементы с багами (даже если их возможное количество ограничено)
И самое главное! Google поменял стиль Settings на Holo (Gmail, System, ...), а PreferenceActivity как был гавном мамонта так и остался. Так что бежать думаю с него скорее…
1. Сделан только для settings и сильно связан с настройками.
2. Customise titlebar в подсекциях не сделать, а в главной с геморроем
3. Всякие динамические элементы с багами (даже если их возможное количество ограничено)
И самое главное! Google поменял стиль Settings на Holo (Gmail, System, ...), а PreferenceActivity как был гавном мамонта так и остался. Так что бежать думаю с него скорее…
А еще есть 2 уровневый список — ExpandableListView, замечательно кастомизируется под любой вид…
Да, Ваша правда.
Но в не него не положить разнородные данные (как на последнем скриншоте) без лишних телодвижений.
Но в не него не положить разнородные данные (как на последнем скриншоте) без лишних телодвижений.
Как это нет, если да?
BaseExpandableListAdapter.getGroupType(int)
Причем, движений намного меньше чем в вашем примере.
Правда есть не большой минус — уровень апи 8.
BaseExpandableListAdapter.getGroupType(int)
Причем, движений намного меньше чем в вашем примере.
Правда есть не большой минус — уровень апи 8.
Не дописал:
BaseExpandableListAdapter.getChildType(int)
Причем, разнородные могут быть как сам заголовок, так и дети.
BaseExpandableListAdapter.getChildType(int)
Причем, разнородные могут быть как сам заголовок, так и дети.
В ваших примерах не хватает для полноты картины самой activity, где адаптер будет наполняться данными.
В этом подходе, я так понимаю, нужно заранее разбить данные на группы и элементы.
Как этот подход будет себя вести в случае ленивай подгрузки данных?
В этом подходе, я так понимаю, нужно заранее разбить данные на группы и элементы.
Как этот подход будет себя вести в случае ленивай подгрузки данных?
все же какую популярность набирает dash… И это хорошо
Сории конечно, хочу спросить, а почему у меня приложения вот такой размытый вид имеют, и старую тему? Где это настраивается?
Планшет ASUS TF300T, Андроид 4.0.3, IntelliJ Idea 10.5, debian 6
Планшет ASUS TF300T, Андроид 4.0.3, IntelliJ Idea 10.5, debian 6
Сорри, что-то скриншот не вставился
habrastorage.org/storage2/1b8/fe1/fba/1b8fe1fbaf0192f1954d02f69e87c00b.jpg
habrastorage.org/storage2/1b8/fe1/fba/1b8fe1fbaf0192f1954d02f69e87c00b.jpg
Используйте темы android:style/Theme.Holo*, или если вы хотите Holo стиль на всех платформах — HoloEverywhere, я туда как-раз коммит подготавливаю:)
Спасибо, а что же по умолчанию не прописанно то?
Ладно, а почему разрешение низкое? Как сделать так, что бы нормально было, для планшетов а не для телефонов?
Ладно, а почему разрешение низкое? Как сделать так, что бы нормально было, для планшетов а не для телефонов?
У вас приложение запущено в режиме совместимости, попробуйте задрать targetSdkVersion в манифесте, например, поставить targetSdkVersion=«16». Так же собрать со свежим сдк апи(16).
Подробности в документации. developer.android.com/guide/practices/screen-compat-mode.html
Подробности в документации. developer.android.com/guide/practices/screen-compat-mode.html
Вот тут описан более элегантный метод реализации (Method2)
android.cyrilmottier.com/?p=440
android.cyrilmottier.com/?p=440
Sign up to leave a comment.
Секционный список в Android