Android: сделать вид сверху списка просмотра прокрутки вместе со списком просмотра

У меня есть список, который, конечно, можно прокручивать. Список содержит некоторые вопросы формы. Когда пользователь отправляет форму, мы помещаем пользовательский вид в виде штампа поверх списка (и не позволяем пользователю отвечать на вопросы, но это не так).не имеет значения здесь).

Марка должна отображаться в верхней части списка (как в верхней части экрана) и иметь возможность прокрутки с той же скоростью, что и список, т.е. она должна исчезать, когда элементы списка, которые изначально находились под ним, исчезают в верхней части экрана, когда прокручивается.

Есть идеи как этого добиться?

Ответы на вопрос(2)

Решение Вопроса

что это слишком элегантно, но это работает, поэтому оставит это, если кто-то не придумает что-то лучшее.

Представление, которое я хочу прокрутить вместе со списком, является настраиваемым представлением, которое должно знать о представлении списка. Поэтому я реализую метод setListView (ListView listView):

private int scrollY; //1
private Map<integer, integer=""> listViewItemHeights = new Hashtable<>();
public void setListView(final ListView listView) {
    listView.setOnScrollListener(new OnScrollListener() {  //2
        @Override
        public void onScrollStateChanged(AbsListView view, int scrollState) {} //3

        @Override
        public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { //4
            View c = listView.getChildAt(0);
            if (c != null) {
                int oldScrollY = scrollY;
                scrollY = -c.getTop();

                listViewItemHeights.put(listView.getFirstVisiblePosition(), c.getHeight());
                for (int i = 0; i < listView.getFirstVisiblePosition(); ++i) {
                    if (listViewItemHeights.get(i) != null)
                        scrollY += listViewItemHeights.get(i);
                }
                scrollBy(0, scrollY - oldScrollY);
            }
        }
    });
}
</integer,>

Комментарий № 1: эта переменная позволяет мне отслеживать текущую позицию прокрутки.

Комментарий № 2: установка нового прослушивателя прокрутки, чтобы мой пользовательский вид знал, когда список

Комментарий № 3: это не должно быть реализовано в этом случае.

Комментарий № 4: здесь происходит волшебство. Обратите внимание, что в конце я прокручиваю свое представление с помощью scrollY - oldScrollY, позвольте мне сначала начать с этого бита. oldScrollY - это сохраненная позиция прокрутки, scrollY - новая. Мне нужно прокрутить разницу между ними. Что касается того, как рассчитывается scrollY, я отсылаю вас к моему ответу здесь:Android получает точную позицию прокрутки в ListViewэто то, как позиция прокрутки рассчитывается в виде списка.

чтобы связать раскладку coustom как заголовок listview .. так что у вас есть прокрутка так же, как listview ...

View headerview = ((LayoutInflater)getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.track_footer_view, null, false);
    listview.addHeaderView(headerview);
 Maria30 окт. 2012 г., 17:53
Дело в том, что я неt необходимо, чтобы штамп отображался поверх первой позиции. Ряды высоты могут быть разными в моем списке, и марка может идти через первые три или около того.
 Maria30 окт. 2012 г., 13:23
Привет спасибо за ответ Мне нужны верхние строки в спискештамп», Так что я могу'т это мнение в заголовке.
 Sanket Kachhela30 окт. 2012 г., 13:28
вы можете добиться этого, создав два пользовательских макета и для первого positon.bind первый макет и второй макет для всех остальных .. так что вам нужно добавить необходимый массив в массив, который вы привязываете в baseadapter
 Ankit13 апр. 2014 г., 11:50
@SanketKachhela Спасибо за ваш ответ, я хотел добавить imageView и заголовок (textView) поверх моего списка, и чтобы его можно было прокрутить с помощью listview. Я добавил оба в заголовок моего списка, и это работает как талисман, ты спас мой день.
 Shajeel Afzal17 нояб. 2014 г., 15:43
Как сделать то же самое через XML?

Ваш ответ на вопрос