【发布时间】:2017-06-28 10:11:43
【问题描述】:
有一个带有左右控制器的编辑文本,用于调整大小。 当用户通过触摸和移动左控制器来调整大小时,我正在计算移动的 x 坐标与编辑文本右侧中点之间的距离。
这个想法是右侧必须保持静态,而从左侧调整大小时,左侧边界必须同样增加或减少。我在从左侧调整大小时为edittext分配新的宽度和中心,如下所示:
ivLeftControl.setPivotX(traversedPoint.x);
editTextViewNew.setGravity(Gravity.CENTER);
editTextViewNew.setWidth((int) (traversedWidth-ivLeftControl.getWidth()*2));
editTextViewNew.setPivotX(centerX - (traversedWidth - originalWidth)/2);
但调整大小只发生在 edittext 的右侧,而不是发生在左侧。即使我不改变枢轴,调整大小也只发生在右侧。
关于如何最好地解决此功能的任何建议?!请记住,控制器和编辑文本的整个设置都使用父布局封装。
【问题讨论】:
-
您需要将更新后的
layoutparmas设置为EditText。 -
Layoutparams 仅用于宽度或更新边距?!我相信对于edittext,可以使用edittext.setWidth()简单地设置宽度。上述问题也发生在我更新 layoutparams 并将它们设置为父级相对布局时。
-
您需要通过计算中心位置的设备父视图宽度来更新左右边距和宽度。
-
我没有根据控制器位置的变化来改变边距。但是我一直在尝试改变相对于背景父画布的编辑文本的左右(使用 setLeft 和 setRight 方法)。只需执行 edittext.setLeft(ChangeInPosition) 就可以了,但是当大小减小时,文本会消失,因此它会取消调整大小的想法。在此期间,我正在尝试您的建议。将更新进展情况。
-
在下面查看我的答案。
标签: android textview resize ontouchlistener