Пользовательское дочернее представление - внутри ExpandableListview - перерисовка неправильная / перерисовки нет после появления полосы прокрутки - PullRequest
0 голосов
/ 12 июля 2011

Проблема : у меня есть расширяемый список.Групповой элемент может содержать оранжевый треугольник с правой стороны (как на изображении).Этот треугольник является производным от View и рисует себя на холсте с помощью переопределенного метода onDraw.Это прекрасно работает с двумя «исключениями»;).

  • После того, как пользователь прокручивает список и после исчезновения полосы прокрутки, пространство, где была полоса прокрутки, не перерисовывается (кэшируется?) Правильно,Я проиллюстрировал проблему на следующем изображении: Проблема проиллюстрирована на изображении (К сожалению, я не могу опубликовать картинку ...)

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

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

Вопрос : Можете ли вы представить, в чем причина проблемы?Есть ли проблема в пользовательском представлении?Должен ли я обращать внимание на что-либо, связанное с проблемой, при использовании настраиваемого представления в представлении списка?

Я действительно ценю ваши добрые ответы, Диего

1 Ответ

0 голосов
/ 15 июля 2011

Я нашел проблему сейчас. В переопределенном методе onDraw (Canvas canvas) я использовал canvas.getClipBounds (), чтобы определить прямоугольник моего представления и нарисовать на нем треугольник. Это может быть явно неправильно. Android хотел, чтобы я перекрасил область, где находилась полоса прокрутки, с клипом, привязанным к холсту, для этой области.

Теперь я использую методы View.getWidth () и getHeight, чтобы определить размер области, на которой я могу рисовать.

Дополнение: Я думаю, как-то странно, что невозможно определить прямоугольник вида, на котором я могу рисовать через холст. Ширина и высота холста устанавливаются на значения разрешения экрана. Может быть, у кого-то есть интересный комментарий о ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...