57

ViewAndroid で a内の aScrollViewが現在表示されているかどうかを確認したい。まだフォーカスされているかどうかは確認していませんが、現在画面に表示されているかどうかは確認していません。Viewビューが現在表示されているかどうかを教えてくれるメソッドはありますか?

4

6 に答える 6

20
int[] location = new int[2];
view.getLocationOnScreen(location);

また

Rect rect = new Rect();
view.getGlobalVisibleRect(rect);

この場所または四角形を使用して、表示されている境界内にあるかどうかを確認します。単なる画面全体の場合は、 を確認してくださいgetResources().getDisplayMetrics()

以下のコメントで Antek が指摘しているように、ビューが最後に描画された場所を示す戻り値で、ビューがまだなくなっているか、見えない可能性があります。view.isShown()したがって、上記の境界関連の条件をorと組み合わせると、それview.getVisibility() == VISIBLEを処理する必要があります。

于 2017-01-17T07:04:53.640 に答える
-9

試す

if(view.isShown()) {
    // Visible
} else { 
    // Invisible
}
于 2016-06-03T07:55:46.810 に答える
-20

public boolean checkVisiblity(View view){

if (view.isShown()) は true を返します。それ以外の場合は false を返します。

}

于 2015-05-02T18:07:13.787 に答える
-29

関数 View.getVisibility() は以下の値を持つことができます:

  • View.VISIBLE (0): ビューが表示されます。

  • View.INVISIBLE (1): ビューは非表示ですが、レイアウトのためにスペースを占有します。

  • View.GONE (2): ビューがなくなりました。ビューが追加されていないかのように、完全に非表示

詳細については、以下のリンクを参照してください。 Androidでビューが表示されているかどうかを確認するにはどうすればよいですか?

于 2012-12-26T11:31:12.527 に答える