Вот моя текущая конфигурация макета:Синхронизировать два ListViews друг на друга в FrameLayout
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ListView
android:id="@+id/list_1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:cacheColorHint="@android:color/transparent"
android:drawSelectorOnTop="false"
android:dividerHeight="0dp"
android:divider="@null"
android:scrollbars="none" />
<ListView
android:id="@+id/list_2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:cacheColorHint="@android:color/transparent"
android:drawSelectorOnTop="false"
android:dividerHeight="0dp"
android:divider="@null"
android:scrollbars="none" />
</FrameLayout>
Верхняя ListView в основном скроллинг наложения для базового ListView: list_1, они должны иметь одинаковую высоту. Оверлей не отображается на холостом ходу, но при перетаскивании он имеет некоторую альфу и отображает текущий раздел list_1.
Я сделал это так, что у нас есть список 1, а список 2 имеют одинаковую высоту содержимого, но у них есть РАЗЛИЧНАЯ ПЛАН для собственного списка.
Зная, что list_2 здесь поймает события касания здесь, я хочу синхронизировать смещение прокрутки списка. Я отчасти это удалось в этом примере:
mListView2.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
View c = mListViewMonths.getChildAt(0);
int scrolly = -c.getTop() + mListViewMonths.getFirstVisiblePosition() * c.getHeight();
mListViewWeeks.setScrollY(scrolly);
}
});
В исключением того, что ListView1 получает прокручивается, но при переходе вниз нет элементов списка из ListView1 не рисуются. Что мне здесь не хватает?
Или, может быть, лучше, отправьте событие касания в listview, а не на все эти методы прокрутки. Мысли?
У меня есть возможное решение, которое я использую, чтобы иметь два списка в представлении сохранения. Решение включает использование scrollview. Я отправлю его в качестве ответа. –
Я не знаю, что вы пытаетесь сделать, но я бы, вероятно, искал другое решение. Это звучит в лучшем случае хакерским. Например, вы можете использовать framelayout как свой элемент, с вашими различными макетами в нем. – njzk2
Хм, глядя на комментарии, которые я получил, я должен, вероятно, возглавить в другом направлении, я предполагаю, что нужно использовать только один список, слишком хакерский, это правда. Но эффект, который я хочу реализовать, требует некоторой работы. Спасибо за ввод. –