0

ユーザーがメイン ビューのボタンをクリックすると、新しいビューが拡張され、メイン ビューに追加されます。私の新しいビューには、デフォルトのテキストが「HelloWorld」の TextView が含まれており、ビューを設定する際に、テキストビューで setText("You have just come from...") と getLeft() と getRight() を使用しています。問題は、テキストがまだ「HelloWorld」であるかのように座標を返すことです。

更新されたテキストがまだ描画されていないため、おそらくこれを行っていると思います。しかし、この新しいビューでボタンをクリックし、onClick で getLeft() と getRight() を実行すると、正しく機能します。私は何を間違っていますか?

4

2 に答える 2

1

ビューのクラスを作成し、View.onFinishInflateをオーバーライドしてそこで処理を行うことができると思います。

このメソッドのみがオーバーライドされた、非常に短いクラスである必要があります。

または、ここで提案されている解決策を使用することもできます: ViewGroup 終了インフレート イベント しかし、欠点は、インフレ後だけでなく、レイアウトがやり直しまたは更新されるたびにコールバックされることです。

于 2012-06-16T18:58:27.797 に答える