Страница 1 из 1
Правильное отображение Итемов (ListView)
Добавлено: 14 янв 2015, 17:38
Sk_games
Всем хорошего настроения. Имплантирую списки в одно место, где их отображение не очень устраивает. Раньше такого вопроса не было, так как списки были в самых обычных местах. Можно заметить, что при прокрутки часть нового Итема обрезается, что мне не подходит. Итем должен быть виден только в полном состоянии. Картинку прикрепляю.
Re: Правильное отображение Итемов (ListView)
Добавлено: 14 янв 2015, 17:39
Sk_games
Картинка
Re: Правильное отображение Итемов (ListView)
Добавлено: 14 янв 2015, 18:19
KamiSempai
А если итем виден не полностью, что с ним делать? Скрывать?
Re: Правильное отображение Итемов (ListView)
Добавлено: 14 янв 2015, 18:31
Sk_games
Не отображать вовсе.. Скорее всего, и скрывать тоже подойдет... Правда как? Вопрос еще открыт)
Re: Правильное отображение Итемов (ListView)
Добавлено: 14 янв 2015, 18:56
KamiSempai
Есть способ но он тернист и дремуч. Вам действительно это нужно? Подобные казусы отображения обычно решают всевозможными украшательствами которые сглаживают их. Например можно добавить рамку для списка.
Re: Правильное отображение Итемов (ListView)
Добавлено: 14 янв 2015, 19:43
alexmx
Если не ошибаюсь у класса View есть метод getTop (), который вроде как возвращает количество пикселей от верхнего края экрана. Может через него как то можно попробовать
Re: Правильное отображение Итемов (ListView)
Добавлено: 14 янв 2015, 19:47
alexmx
KamiSempai писал(а):Есть способ но он тернист и дремуч. Вам действительно это нужно? Подобные казусы отображения обычно решают всевозможными украшательствами которые сглаживают их. Например можно добавить рамку для списка.
Но рамка или черта гораздо проще

Re: Правильное отображение Итемов (ListView)
Добавлено: 14 янв 2015, 19:51
Sk_games
Вот, блин, я думал это будет куда проще, рамка для листа отпадает, так как мне такие не нравятся... Я думал просто с таким вопросом уже не раз все сталкивались...
Re: Правильное отображение Итемов (ListView)
Добавлено: 14 янв 2015, 19:56
alexmx
Ну тут вам выбирать либо танец с бубном в дебрях исходников, либо редизайн
Re: Правильное отображение Итемов (ListView)
Добавлено: 14 янв 2015, 20:30
Sk_games
Так, попытка не пытка, нужно пробовать. Может если я буду знать количество пикселей, до полного отображения, и запускать анимацию, для отображение... Другое дело, где мне считывать это количество пикселей верхнего последнего элемента, и так же само нижнего...
Re: Правильное отображение Итемов (ListView)
Добавлено: 14 янв 2015, 21:12
Sk_games
И можно все таки несколько примеров, или ссылку на ресурс, каких нибудь украшательств, к спискам. Может можно будет что то имплантировать...
Re: Правильное отображение Итемов (ListView)
Добавлено: 14 янв 2015, 21:18
alexmx
Может гугл что знает)))
Re: Правильное отображение Итемов (ListView)
Добавлено: 14 янв 2015, 22:58
Foenix
в результате прокрутка списка у тебя станет не плавная, а типа как барабан спортлото чирикать. Это не совсем в стиле андроида. Лучше поначалу в такие штуки не лезть.
Re: Правильное отображение Итемов (ListView)
Добавлено: 15 янв 2015, 10:56
Sk_games
Foenix
Это не должно быть, как барабан. Я выставил подходящую мне анимацию, только вот прикрутил ее к адаптеру. Может если изменить ее. Примером можно ли прикрутить анимацию к считыванию движения в ЛистВью? Примером медленно свайпаешь вниз и корректно появляется новый элемент, анимацией..
Кто то делал вот так?
Re: Правильное отображение Итемов (ListView)
Добавлено: 15 янв 2015, 16:38
razmus
Можно попробовать переопределить скрол, и при скролировании будет открываться как бы вторая страница сразу, не знаю подойдет ли такое поведение для вашей задачи.
Re: Правильное отображение Итемов (ListView)
Добавлено: 15 янв 2015, 18:45
Sk_games
Может быть, я сейчас хотел бы хоть какое то решение. Так как до конца не могу понять вашу реализацию) И врядли без примера пойму) Просто думал у кого то уже были схожие задачи, и есть решения....
Re: Правильное отображение Итемов (ListView)
Добавлено: 15 янв 2015, 18:52
KamiSempai
Как то так:
[syntax=java]listView.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 child = view.getChildAt(0);
if (child != null) {
child.setVisibility(child.getTop() < 0 ? View.INVISIBLE: View.VISIBLE);
}
// Делаем видимыми все элементы посередине. Если этого не сделать будут глюки с видимостью.
for (int i = 1; i < view.getChildCount() - 1; i++) {
child = view.getChildAt(i);
if (child != null)
child.setVisibility(View.VISIBLE);
}
// Последний видимый элемент
child = view.getChildAt(view.getChildCount() - 1);
if (child != null) {
child.setVisibility(child.getTop() + child.getMeasuredHeight() > view.getMeasuredHeight() ? View.INVISIBLE: View.VISIBLE);
}
}
});[/syntax]
Я сделал строки невидимыми если они выходят за границы списка. Честно говоря, мне не понравилось. Может быть, если сделать плавную анимацию появления, будет симпатичнее.
Re: Правильное отображение Итемов (ListView)
Добавлено: 15 янв 2015, 22:15
Sk_games
Сейчас буду пробовать, но в любом случае спасибо... Может пока еще кто то видит. Такой же вопрос по дизайну, ничего полезного не нахожу, у кого будет время:
https://www.youtube.com/watch?v=Q8TXgCzxEnw (23-25 секунды). Анимация ЭкшенБара...
Re: Правильное отображение Итемов (ListView)
Добавлено: 15 янв 2015, 22:23
Sk_games
Вот блин, смотрю код, ну элементарно, нет ничего нового в методах. Либо я не могу абстрагироваться в своих задачах, что прошу помощи) Либо опыт берет все таки верх....
Re: Правильное отображение Итемов (ListView)
Добавлено: 16 янв 2015, 12:25
KamiSempai
Опыт имеет большое значение. Как ни как ListView вдоль и поперек изучил.
Змаечу, что данный вариант будет стабильно работать только в стандартном ListView.
Если это будет не стандартный список, могут возникнуть проблемы, так как за последовательность дочерних элементов, и их предназначение я ручаться не могу.