基本的には、私はonWindowFocusChanged()
の機能を必要としますが、Fragment
にする必要があります。 リスナーは実際にはフラグメントには使用できませんので、何をすべきかはわかりません。フラグメントを描画するタイミングを検出しますか?
これを行う方法はありますか?
基本的には、私はonWindowFocusChanged()
の機能を必要としますが、Fragment
にする必要があります。 リスナーは実際にはフラグメントには使用できませんので、何をすべきかはわかりません。フラグメントを描画するタイミングを検出しますか?
これを行う方法はありますか?
フラグメントは、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
}
}
)
OnWindowFocusChangedは はあなたのフラグメントにフォーカスを持つことができ、各ビューにOnWindowFocusChanged実装ビューの描画に関する情報を提供していない(または表示されませんでした)。擬似コードで :
Fragment implements OnWindowFocusChanged{
onCreate(){
btn.OnWindowFocusChanged(this);
editTxt.OnWindowFocusChanged(this);
....
}
public void OnWindowFocusChanged(boolean hasFocus){
// your fragment has focus
}
}
onWindowFocusChanged(ブーリアンhasFocus)メソッドは活動中のコールが、断片drawns我々が通過確認することができる方法がonActivitycreated()。このポストを確認してくださいhttps://stackoverflow.com/a/32819850/2732632
正常に機能しているようですね!これを正しい答えとして選択する前に、私はいくつかのシナリオでそれを実行します。 – VicVu
このトリックはどのビューでも動作することに気付くはずです(ほぼ2か月後)。 Fragmentを介して投稿されたものだけでなく、View intを展開した場合など、アクティビティも表示されます。これは動作します。 – DeeV
はい!私はこれを、私がやっている小さな眺めのギミックのために全部使いました。 – VicVu