Это очень хороший пример SlideExpandibleList в Github.
https://github.com/tjerkw/Android-SlideExpandableListView
Надеюсь, это поможет вам добиться плавной анимации и коллапса.
В этом примере сохранено состояние элемента расширенного списка. Поэтому, даже если вы прокрутите список вниз, закрытый элемент списка не будет закрыт.
В этом примере событие раскрытия или сворачивания задается для кнопки, поэтому вам необходимо изменить его родительский макет элемента списка.
Я приложил снимки экрана.
Надеюсь, это поможет вам.
SqlAlchemy совершенно избаловал нас.
Следующее ниже взято непосредственно из учебного пособия ,
и его действительно легко настроить и приступить к работе.
И поскольку это делается так часто,
Майк Байер сделал это еще проще
с помощью универсального «декларативного» метода .
Настройте свою среду (я использую базу данных SQLite в памяти для тестирования):
>>> from sqlalchemy import create_engine
>>> engine = create_engine('sqlite:///:memory:', echo=True)
>>> from sqlalchemy import Table, Column, Integer, String, MetaData
>>> metadata = MetaData()
Определите свою таблицу:
>>> players_table = Table('players', metadata,
... Column('id', Integer, primary_key=True),
... Column('name', String),
... Column('score', Integer)
... )
>>> metadata.create_all(engine) # create the table
Если у вас включено ведение журнала, вы увидите SQL, который SqlAlchemy создает для вас.
Определите свой класс:
>>> class Player(object):
... def __init__(self, name, score):
... self.name = name
... self.score = score
...
... def __repr__(self):
... return "<Player('%s','%s')>" % (self.name, self.score)
Сопоставьте класс со своей таблицей:
>>> from sqlalchemy.orm import mapper
>>> mapper(Player, players_table)
<Mapper at 0x...; Player>
Создайте игрока:
>>> a_player = Player('monty', 0)
>>> a_player.name
'monty'
>>> a_player.score
0
Вот и все, теперь вы есть свой стол игрока.
Кроме того, группа Google SqlAlchemy великолепна.
Майк Байер очень быстро отвечает на вопросы.
Может быть, посмотрите SQLSoup , который является слоем над SQLAlchemy.
you can use declarative method for dynamically creating tables in database
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Table, Column, Integer, String, MetaData, ForeignKey
Base = declarative_base()
class Language(Base):
__tablename__ = 'languages'
id = Column(Integer, primary_key=True)
name = Column(String(20))
extension = Column(String(20))
def __init__(self, name, extension):
self.name = name
self.extension = extension
Я столкнулся с той же проблемой, когда пытался автоматизировать простые задачи CRUD с помощью SQLAlchemy. Вот простое объяснение и небольшой код: http://www.devx.com/dbzone/Article/42015