Можно ли расширить AbsListView для создания новых реализаций ListView?

Я пытался создать стилистически отличающееся представление списка, как и многие другие люди, и начал с поиска расширения AbsListView. Согласно документации Android, AbsListView — это:

Базовый класс, который можно использовать для реализации виртуализированных списков элементов. Здесь список не имеет пространственного определения. Например, подклассы этого класса могут отображать содержимое списка в виде сетки, карусели, стопки и т. д.

После некоторых усилий и проверки реализации ListView оказалось, что возможно невозможно расширить AbsListView так, как это делает ListView, из-за связи двух классов и невозможности доступа к определенным членам пакета. Я наткнулся на эту форму Romain Guy:

AbsListView и AbsSpinner предназначены для расширения в пределах рамки. Они также могут быть расширены в сторонних приложениях, но мы это сделали. не раскрывать все необходимые защищенные поля и методы намеренно. Мы хотим быть очень осторожными в раскрытии таких API, чтобы не получить материал для будущих расширений и внутренних изменений. Наш текущий рекомендуется просто скопировать/вставить код, который вам нужен внутри вашего приложение.

Я начал пытаться сделать это, но копирование AbsListView превратилось в кроличью нору копирования в куче других вещей, и это действительно кажется проигрышным предложением. Я хотел посмотреть, добился ли кто-нибудь успеха в расширении AbsListView, кто мог бы поделиться методологией.

[1] http://developer.android.com/reference/android/widget/AbsListView.html

[2] https://groups.google.com/forum/?fromgroups#!topic/android-developers/UhbR1tpVvF0

50
задан nsemeniuk 29 November 2012 в 03:57
поделиться