2012-11-06 10 views

答えて

54

フラグメントは、onCreateView()に戻ってViewで返されます。その中のイベントハンドラを使うことができます。通常、が初めて表示されたときにコマンドを実行する必要がある場合は、Runnableに割り当てて、post()メソッドを使用してViewにアタッチします。

getView().post(new Runnable() { 
    @Override 
    public void run() { 
     // code you want to run when view is visible for the first time 
    } 
    } 
) 
+2

正常に機能しているようですね!これを正しい答えとして選択する前に、私はいくつかのシナリオでそれを実行します。 – VicVu

+2

このトリックはどのビューでも動作することに気付くはずです(ほぼ2か月後)。 Fragmentを介して投稿されたものだけでなく、View intを展開した場合など、アクティビティも表示されます。これは動作します。 – DeeV

+1

はい!私はこれを、私がやっている小さな眺めのギミックのために全部使いました。 – VicVu

-3

OnWindowFocusChangedは はあなたのフラグメントにフォーカスを持つことができ、各ビューにOnWindowFocusChanged実装ビューの描画に関する情報を提供していない(または表示されませんでした)。擬似コードで :

Fragment implements OnWindowFocusChanged{ 

onCreate(){ 

btn.OnWindowFocusChanged(this); 
editTxt.OnWindowFocusChanged(this); 
.... 

} 

public void OnWindowFocusChanged(boolean hasFocus){ 
// your fragment has focus 
} 

} 
0

onWindowFocusChanged(ブーリアンhasFocus)メソッドは活動中のコールが、断片drawns我々が通過確認することができる方法がonActivitycreated()。このポストを確認してくださいhttps://stackoverflow.com/a/32819850/2732632

関連する問題