4

HorizontalScrollViewにはLinearLayoutが含まれ、FrameLayoutが含まれています。各FrameLayoutにはFragmentのレイアウトが含まれています。現在、ビューを取得しようとしています。つまり、HorizontalScrollView内に現在表示されている、またはフォーカスが当てられているFrameLayoutです。私が焦点を当てているとすぐに、LinearLayoutのインデックスを得ることができました。Android - Horizo​​ntalScrollView - フォーカスのあるビュー(またはそのインデックス)

私は次のことを試してみたが、何も動作:

  • Horizo​​ntalScrollView.findFocus() - 戻り
  • LinearLayout.findFocusを(NULL) - リターン - リターンは
  • LinearLayout.getFocusedChildを()はnullヌル
  • FrameLayout.hasFocus() - 私はすべてのFrameLayout

にfalseを返すことができLinearLayoutのどの子がフォーカスを持っているかを把握しようとする。各子の現在のX位置に基づいて計算を行う。ただし、各子のgetX()を呼び出すと常に「0.0」が返されます。

ビューのフォーカスを取得する方法を知っている人はいますか(または、LinearLayoutのインデックスでもよいでしょう)。この質問への答えを使用して

+0

はあなたが私たちと共有する気にしませんか?私はちょうど興味がある。 –

+0

私はどのフラグメントがロギングの目的で表示されているかを追跡する必要があります – Schnodahipfe

答えて

6

android-how-to-check-if-a-view-inside-of-scrollview-is-visible私は、次の解決策を考え出した:あなたがそのようなことをしたいと思いますなぜ

Rect scrollBounds = new Rect(); 
MyHorizontalScrollView.getDrawingRect(scrollBounds); 
Rect childBounds = new Rect();  
for (int i = 0; i < MyLinearLayout.getChildCount(); i++) { 
    MyLinearLayout.getChildAt(i).getHitRect(childBounds); 
    if(scrollBounds.contains(childBounds)) { 
     IndexOfVisibleChild = i; 
     return; 
    } 
} 
+0

スクロールバービューで現在表示されている子ビューの数を取得する方法はありますか? – CoDe

+0

ここにはどんな解決策/提案がありますか? – CoDe

+0

年齢ではAndroidで何もしていませんが、上記if文のカウンタをインクリメントした場合は、 – Schnodahipfe

関連する問題