这是代码。
RelativeLayout layout = new RelativeLayout(this); TextView title = new TextView(this); title.setGravity(Gravity.CENTER); title.setWidth(320); title.setHeight(160) title.setText("hello"); layout.addView(title); layout.setOnTouchListener(this);
在屏幕上,当我将视图位置从 (x:0, y:0) -> 移动到 (x: 200, y:300)
然后设置TextView的值
title.setText("aaaaabbbbbbccccccdddddddeeeeeeeddddd");
字符串长度 > textview 的宽度,所以多行显示
然后发生的错误是“TextView的位置回到(x:0,y:0)”
如果 TextView 是显示 SingleLine,例如:title.setText("aaa"); TextView 的位置是 (x:200, y:300)
是android textView显示多行字符串,布局是Redrawn吗?任何人都可以帮助我吗?我担心了一晚上!!!
ps: 调用 TextView.bringToFront(); 时也会出现同样的错误。
// 在Android中,如果改变了视图位置,必须设置layoutparams;否则,当视图重绘时,视图会回到location(0,0)。</p>
// 解决方法是这样的:</p>
RelativeLayout.LayoutParams lpFeedback = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
lpFeedback.leftMargin = v.getLeft();
lpFeedback.topMargin = v.getTop();
lpFeedback.setMargins(v.getLeft(), v.getTop(), 0, 0);
v.setLayoutParams(lpFeedback);