Почему я могу добавить больше строк в объект Android Path после того, как я уже добавил его в массив? - PullRequest
0 голосов
/ 13 декабря 2018

Я работаю в пользовательском представлении, которое расширяет View

У меня есть arraylist, который содержит пару Path и Paint

private lateinit var fingerPathForPair: Path
private lateinit var fingerPaintForPair:Paint
private var arrayListFingerPath = arrayListOf< Pair< Path, Paint > >()

Почему при вызове второй строкив приведенном ниже фрагменте кода (, который в моем коде находится внутри сенсорного прослушивателя View в разделе MotionEvent.ACTION_DOWN ), я все еще могу добавить строки к fingerPathForPair, например, когда я использую код fingerPathForPair.lineTo(touchPosX, touchPosY), которыйнаходится в моей MotionEvent.ACTION_MOVE части слушателя касания

fingerPathForPair  = Path()
arrayListFingerPath.add(Pair(fingerPathForPair, fingerPaintForPair))`

Если вы думаете, что публикация всего моего класса поможет вам, пожалуйста, спросите, и я опубликую правку.

ДОПОЛНЕНИЕ 1

Код для удаления последнего мазка, сделанного пользователем на холсте

fun undo()
{
    // Get paths from main finger paths array list and add it to the undo store
    if (this.arrayListFingerPath.isNotEmpty())

    {
        // Remove the last modified path from the main arraylist of finger paths and add it to the undo store
        this.arrayListFingerPathUndoStore.add(this.arrayListFingerPath.removeAt(this.arrayListFingerPath.lastIndex))
        invalidate()
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...