2012-03-08 66 views
1

我在Monodroid(C#)中这样做,但我相信大多数人都能理解。我需要在intervalls中移动某个textview。第一个与父母左对齐的工作正常。然后,我等待4秒钟,并希望它与父母对齐,这根本没有任何效果。它保持离开。怎么来的?设置LayoutParams两次,没有效果?

例(C#)

RelativeLayout.LayoutParams newParams = (RelativeLayout.LayoutParams)textView.LayoutParameters; 
newParams.AddRule(LayoutRules.AlignParentLeft); 
textView.LayoutParameters = newParams; 


System.Threading.Thread.Sleep(4000); 

RelativeLayout.LayoutParams newParams2 =(RelativeLayout.LayoutParams)textView.LayoutParameters; 
newParams2.AddRule(LayoutRules.AlignParentRight); 
textView.LayoutParameters = newParams2; 

非常奇怪,因为它的作品完美无瑕的第一时间..

回答

1

设置新的布局参数之后,你需要调用requestLayout()你的观点采取效应。

requestLayout()

调用此当事情已经改变已经失效这一观点的布局 。这将安排视图树的布局传递。

所以你应该叫:

textViewToAnimate.requestLayout(); 
+0

都尝试这和ForceLayout()没有效果:( – 2012-03-08 11:33:18

+0

你也尝试'textViewToAnimate.invalidate();' – waqaslam 2012-03-08 11:44:58

+0

可惜是.. – 2012-03-08 12:40:43