[解決済み] Android: ScrollViewの中のViewが表示されているかどうかを確認する方法は?
2022-04-14 13:45:28
質問
私は
ScrollView
を保持し、一連の
Views
. あるビューが現在表示されているかどうかを判断できるようにしたいのです(そのビューの一部が現在
ScrollView
). 以下のコードでこれを行うことを期待しますが、意外にもそうではありません。
Rect bounds = new Rect();
view.getDrawingRect(bounds);
Rect scrollBounds = new Rect(scroll.getScrollX(), scroll.getScrollY(),
scroll.getScrollX() + scroll.getWidth(), scroll.getScrollY() + scroll.getHeight());
if(Rect.intersects(scrollBounds, bounds))
{
//is visible
}
解決方法は?
使用方法
View#getHitRect
の代わりに
View#getDrawingRect
をテストするビューに追加します。テストするビューでは
View#getDrawingRect
の上に
ScrollView
を明示的に計算するのではなく
からのコード
View#getDrawingRect
:
public void getDrawingRect(Rect outRect) {
outRect.left = mScrollX;
outRect.top = mScrollY;
outRect.right = mScrollX + (mRight - mLeft);
outRect.bottom = mScrollY + (mBottom - mTop);
}
のコード
View#getHitRect
:
public void getHitRect(Rect outRect) {
outRect.set(mLeft, mTop, mRight, mBottom);
}
関連
-
AndroidでAttempt to invoke virtual method... on null object referenceの例外が発生する。
-
[解決済み] Androidのリストビューをスクロールビュー内に表示する
-
アンドロイドシェイプ、グラデーション、角丸、ボーダーラインの設定
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] AndroidのListViewで画像を遅延ロードする方法
-
[解決済み] Androidで画面の大きさをピクセル単位で取得する方法
-
[解決済み] グリッドレイアウトにおけるフリングジェスチャーの検出
-
[解決済み] ViewPager PagerAdapter がビューを更新しない
-
[解決済み] 初期テキストが「Select One」のAndroidスピナーを作るには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
NetworkOnMainThreadException
-
AndroidStudio reports Could not resolve all artifacts for configuration ':app:classpath'.
-
Android Studio を 3.6.3 にアップデートした後、構成 :classpath のアーティファクトをすべて解決できない。
-
Google PlayデバイスはPlay保護機構の認証を受けていません。
-
android block certificate validation CertPathValidatorException: 認証パスのトラストアンカーが見つかりません
-
ライブラリをモジュールとしてインポートする際にエラーが発生しました。Error:A problem occurred configuring project ':library'.
-
Android Get set image.setImageResource(R.drawable.xxx) リソース
-
Android Studio http://schemas.android.com/apk/res/android 「URIが登録されていません」の解決方法について
-
Android studio 制約レイアウト ConstraintLayout
-
[解決済み】Androidでビューが表示されているかどうかを確認するにはどうすればいいですか?重複