0

フラグメントが表示されているかどうかを継続的に確認したいと思います。キーボードが Android アプリケーションに存在する場合。これを行うための最良の方法は何ですか?

アクティビティのライフサイクルにはあま​​り詳しくありませんが、これが正しい方法であることを願っています。以下のコードは、OnCreate メソッドに記述されています。ただし、常に実行する必要があります。

if (timeFragment.isVisible()){
    Toast.makeText(getApplicationContext(), "Time visible", Toast.LENGTH_LONG).show();
}
4

2 に答える 2

1

フラグメントの場合、関数 setUserVisibleHint(boolean isVisible) は、フラグメントが表示または非表示になるたびに起動されます。

これにより、ポーリングに比べてリソースが節約されます。時間フラグメント:

public void setUserVisibleHint(boolean isVisible) {
    if (isVisible)
        Toast.makeText(getActivity(), "Time becoming visible", Toast.LENGTH_LONG).show();
    else
        Toast.makeText(getActivity(), "Time becoming invisible", Toast.LENGTH_LONG).show();
}

お役に立てれば...

于 2012-08-01T06:39:30.633 に答える
0

ソフトキーボードが現在画面に表示されているかどうかを確認することが本当に必要な場合(上記のコメントへの返信から推測しているように)、このかなりハッキーなリスナーアプローチを使用できます。

于 2012-08-09T16:33:08.533 に答える