设置宽度时,左右均匀更改edittext

时间:2017-06-28 10:11:43

标签: android textview resize ontouchlistener

我有以下设置。  enter image description here

左侧和右侧有一个带控制器的edittext,用于调整大小。 当用户通过触摸和移动左控制器来调整大小时,我正在计算移动的x坐标和edittext右侧的中点之间的距离。

这个想法是右侧必须保持静止,而从左侧调整大小,左边界必须像明智一样增加减少。我在左侧调整大小时为新文本分配新的宽度和中心,如下所示:

ivLeftControl.setPivotX(traversedPoint.x);
                    editTextViewNew.setGravity(Gravity.CENTER);
                    editTextViewNew.setWidth((int) (traversedWidth-ivLeftControl.getWidth()*2));
                    editTextViewNew.setPivotX(centerX - (traversedWidth - originalWidth)/2);

但调整大小只发生在edittext的右侧,而不是沿着左侧发生。即使我不改变枢轴,调整大小只发生在右侧。

enter image description here

关于如何最好地解决这些功能的任何建议?!请记住,控制器和edittext的整个设置都使用父布局进行封装。

1 个答案:

答案 0 :(得分:0)

解决方案 - MarginLayoutParams

您需要创建MarginLayoutParams,然后在其中设置高度,宽度,边距并设置为您的视图。

MarginLayoutParams layoutParams = (MarginLayoutParams) getLayoutParams();
layoutParams.width = mPixelSize;
layoutParams.height = mPixelSize;
layoutParams.setMargins(mLeftMargin, mTopMargin, 0, 0);
requestLayout();