2012-03-08 17 views
1

私はMonodroid(C#)でこれをやっていますが、とにかくあなたのほとんどが理解していると思います。私はインターバルで特定のテキストビューを移動する必要があります。最初の親の左への整列は正常に動作します。それから私は4秒待って、それがまったく効果を与えない親の右に揃えたいと思う。それは残っている。どうして?LayoutParamsを2回設定しても効果はありませんか?

例(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()の両方を試しました:( –

+0

はあなたにも 'textViewToAnimate.invalidate(試さ持っている);'残念ながら – waqaslam

+0

はい... –

関連する問題