2017-02-05 7 views
0

ビューが画面に描画されているかどうかを知ることができたらいいですか?ビューが描画されているかどうかを確認するには

私はリスナーを設定し、それを待っていることに興味はありません。私はすでにそれを行う方法を知っています。ビューが現在画面に表示されている場合は、true/falseを表示するためにコールを探しています。

私は間違っている可能性はありますが、その状態に関係なく、プリセット変数であることを単に確認できるとは思いません。

ビューが描画されていない場合は、ViewTreeObserverを設定して待機しますが、ビューがまだ描画されていない場合にのみ必要です。

答えて

1

getVisibility()は事前定義済みのプロパティを返し、リスナーを設定したくないため、私は唯一のオプションはView.isShown()だと思う。 これが役立つことを願っています。

+0

これはまさに私が探していたものです。私は昨夜、ビュークラスのメソッドを掘って誓って、私の人生のためにこれを見つけることができませんでした。しかしそれは完璧です。 –

0

あなただけの1つのビューを観察したい場合は、カスタムビューを作成し、draw()をオーバーライドして、のようにそれにフラグを設定しよう:

public DemoView extends TextView { 
    private boolean mHasDrawn; 
    // ... 
    @override 
    public void draw(Canvas canvas) { 
     super.draw(canvas); 
     mHasDrawn = true; 
    } 
} 

あなたは視界を確保するためにmHasDrawnを確認することができてきました描かれた。 しかし、私はリスナーを設定することがこれよりも良いと思います。

関連する問題