на ubuntu:
sudo apt-get install php-mysql
sudo service apache2 restart
Это можно сделать с помощью простого ListView, который содержит изначально скрытое представление и пользовательский класс, расширяющий Animation. Основная идея состоит в том, чтобы начать с View.GONE
, а затем постепенно изменять размер поля с отрицательного значения до требуемого размера, устанавливая видимость на View.VISIBLE
.
См .:
.. и, наконец,
Последний пример содержит весь необходимый код. Это выглядит немного хакерским для меня, особенно тот факт, что вы должны изначально установить view.bottomMargin = -50
или более, в противном случае анимация не работает должным образом с первого раза, но до сих пор я не нашел какой-либо жизнеспособной альтернативы (кроме использования ScrollView с ваши собственные элементы контейнера вместо ListView).
И, наконец, это приложение включает в себя приведенный выше пример, среди множества других полезных примеров со ссылками на источники:
Обновление: Google удалил приложение из игрового магазина якобы за нарушение интеллектуальной собственности (хотя оно содержало только демонстрации и ссылки на проекты с открытым исходным кодом), автор теперь сделал apk доступен для прямой загрузки с http://goo.gl/ihcgs Подробнее см. https://plus.google.com/108176685096570584154/posts . NB: я не связан с автором.
Я нашел возможное (частичное) решение этой проблемы.
сначала вам нужно сохранить состояние прокрутки ExpnadableListView:
@Override
public void onScrollStateChanged(final AbsListView view, final int scrollState) {
this.mScrollState = scrollState;
}
public int getScrollState() {
return this.mScrollState;
}
для самого listView, вам нужно сохранить, какая группа была нажата, чтобы анимировались только ее дочерние элементы:
mListView.setOnGroupClickListener(...
@Override
public boolean onGroupClick(...){
mGroupPosition=groupPosition;
Теперь, в методе getChildView (), вы проверяете состояние прокрутки, и если он простаивает, вы запускаете анимацию, например:
public View getChildView(...) {
// <=prepare rootView and return it later
if (groupPosition==mGroupPosition&&getScrollState() == OnScrollListener.SCROLL_STATE_IDLE)
rootView.setAnimation(...)
это установит анимацию для просмотра ребенком каждый раз, когда вы расширяете группу.
недостатком этого являются: