2012-02-13 18 views
0

アンドロイドで画面の更新を傍受することは可能ですか?アンドロイドのスクリーン更新を傍受する

私はカスタムLinearLayoutを実装しましたが、onDraw()メソッドをオーバーロードしましたが、子要素をクリックしていないときにのみ呼び出されます。

など。このビューグループにボタンがあり、このボタンをクリックすると、onDraw()メソッドはルートレベルで呼び出されません。一方、TextViewに触れるとonDraw()がルートレベルで呼び出されます。いくつかの要素がonDraw()メソッドを消費し、それを親に渡さないようです。可能な子をそれぞれ拡張してカスタム実装を行う以外は、ルートビューとルートレベルのすべての更新を取得するために捕捉できる別のメソッドまたはイベントがありますか?

編集:多分私はそれを少し明確にしなければなりません。私の目的は、子ビューのビットマップを変更するたびに取得することです。だからボタンが子ビューの場合、ビューをビットマップに描画したい(描画キャッシュを取得するか、カスタムキャンバスに手動でdraw()を呼び出す)。例えば、 onClickListenerは、ボタンの状態がクリックされている間は実際には「クリック」されていること、クリックされた後、設定されているボタン状態の画像が必要であることを示します(http://developer.android.com/design/style /touch-feedback.html)。もう1つの問題は、子ビューの数や数がわからないことです。作成されたすべてのレイアウトで有効です。ですから、onClickListenersはオプションではありません。ただし、すべての子を繰り返し処理し、それらがどのタイプであるかチェックする点が異なります。しかし、依然として異なる州には問題があります。

答えて

0

dont create onclickリスナールートレイアウトの子レイアウト用。

0

子レイアウト用のonClickリスナーを作成せず、アクティビティにonClickListenerを実装させます。アクティビティのonClickメソッドをオーバーライドすると、その中のクリックを処理できます。

public class Acitivity implements OnClickListener 
{ 

    @Override 
    public void onClick(View v) 
    { 
      //Handle clicks here 
    } 

} 
関連する問題