Итак, я использовал обычный просмотр списка и затем анимировал представления строк при нажатии.
Я использую этот метод для анимации: Android-анимация, собственно выпадающий / вид сверху
Может быть немного сложно, если высота для выпадающего вида равна wrap_content, для этой проблемы мне пришлось найти и установить высоту, прежде чем я запустил анимацию:
public static void setHeightForWrapContent(Activity activity, View view) {
DisplayMetrics metrics = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
int screenWidth = metrics.widthPixels;
int heightMeasureSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);
int widthMeasureSpec = MeasureSpec.makeMeasureSpec(screenWidth, MeasureSpec.EXACTLY);
view.measure(widthMeasureSpec, heightMeasureSpec);
int height = view.getMeasuredHeight();
view.getLayoutParams().height = height;
}
Вид должен быть пропущен до начала анимации, а затем должен быть видимым при запуске анимации.
Редактировать: я сделал полный пример здесь .