Я использую перетаскивание в текущем проекте, где различные View
s помещены в RelativeLayout
в соответствии с LayoutParams
, примененным к ним. Как и вы, я обнаружил, что представления будут уменьшаться при достижении правого или нижнего края контейнера ViewGroup
. Вероятно, вполне очевидно, что это произойдет, на самом деле, учитывая, что на этапах измерения и компоновки система определит, что данный View
внезапно должен будет иметь гораздо меньшие размеры, чем вы на самом деле хотите, если он все еще будет чтобы быть в состоянии вписаться в родителя, когда находится вблизи крайностей.
Очень простое решение, которое я сделал, чтобы обойти это на данный момент, состоит в том, чтобы просто увеличить мой ViewGroup
относительно размера экрана.
Кроме того, вы можете решить, что вы на самом деле не хотите, чтобы View
s появлялись частично за кадром, и в этом случае вы использовали бы некоторую программную логику, чтобы не допустить установки полей объектов View
таким образом, чтобы View
разрешено выходить за пределы родительского контейнера.
Другое решение может заключаться в переопределении onMeasure()
или аналогичном, чтобы заставить дочерний элемент View
принудительно установить больший размер, чем родитель считает доступным для него - если это возможно - чтобы заставить представление быть помещенным туда в желаемый размер, перекрывая края. Это просто идея из головы, хотя и не исследовал ее.