2012-04-23 11 views
0

アクティビティ開始時に表示する位置を設定しようとしています。view.layout()メソッドの後にビュー位置を更新するにはどうすればよいですか?

私の問題の大部分はonCreateメソッドのレイアウト座標を取得することでしたので、onWindowFocusChangedに書きました。座標は0ではないので、layout()メソッドで位置の表示を設定できるようになりました。

私はそれをしましたが、ビューはその位置を更新しませんでした。ところで、私のログビューには新しいポジションがあります。

ビューを更新する必要がありますので、ヒントをお願いします。

ありがとうございます。

+0

FWIW 'view.layoutは()'メソッドは、() 'onTouch'から呼び出されたときに動作するようですが、何か他のものを試すことができるように、その後私にご返信くださいあなたはそれを私の経験からこのページに導いた方法では動作しません –

+0

http://stackoverflow.com/questions/7217614/change-view-positionに関連する –

答えて

2

getLayoutParams()を使用してレイアウトパラメータを取得し、変更マージンを再度設定してレイアウトパラメータを設定することができます。

  1. RelativeLayout.LayoutParams param = View.getLayoutParams();

  2. あなたの新しい位置に応じて、あなたのparamで余白を設定します。

  3. View.setLayoutParams(param)

それはあなたの問題を解決していない場合、私は

+0

ああ、それはあまりにも簡単です.. –

+0

FrameLayoutでこれを行うことはできますか? –

+0

私は試していませんが、すべてのレイアウトがViewgroup.layoutparamを実装しているので、そうすべきです。 –

関連する問題