Я пытаюсь понять структуру представления Android, и я немного запутался в том, как позиционировать дочерние представления
Допустим, у меня есть FrameLayout
, который будет содержать мой пользовательский вид. Мой пользовательский вид рисует только прямоугольник 50x50 пикселей.
Итак, я установил свой View.setMeasureDimension(50, 50);
Теперь, как я должен переместить эту точку зрения? Я нашел несколько способов сделать это.
1: я мог бы сделать что-то вроде canvas.drawRect(new Rect(offsetX, offsetY, right, bottom));
, но это увеличит мой Просмотр и, таким образом, my measureWidth / height
больше не будет действительным?
2: установить отступ для родительского элемента и тем самым повлиять на left / top View.getLeft() / View.getTop()
. Но это повлияет на все дочерние элементы.
3: используйте View.offsetLeftAndRight( number of pixels to move )
. Я не совсем понимаю, что это на самом деле делает. Это вызывает какой-то canvas.translate()
? Но в этом случае мне нужно сохранить состояние, сколько раз я звонил offsetLeftANdRight()
, потому что вызов offsetLeftANdRight(10)
и затем offsetLeftANdRight(10)
переместит его на 20px.
Я немного запутался в том, что такое «правильный» способ сделать это. Есть ли лучший способ?