左侧和右侧有一个带控制器的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的右侧,而不是沿着左侧发生。即使我不改变枢轴,调整大小只发生在右侧。
关于如何最好地解决这些功能的任何建议?!请记住,控制器和edittext的整个设置都使用父布局进行封装。
答案 0 :(得分:0)
解决方案 - MarginLayoutParams
您需要创建MarginLayoutParams,然后在其中设置高度,宽度,边距并设置为您的视图。
MarginLayoutParams layoutParams = (MarginLayoutParams) getLayoutParams();
layoutParams.width = mPixelSize;
layoutParams.height = mPixelSize;
layoutParams.setMargins(mLeftMargin, mTopMargin, 0, 0);
requestLayout();