7

私のLinearLayout(parentLayoutなど)には他に5つLinearLayouts(childLayoutなど)があり、現時点ではそのうちの1つだけが表示されているとします。他のレイアウトは、外部イベントに依存して表示されます。表示されているparentLayoutのchildLayoutの数を数えるにはどうすればよいですか?

4

2 に答える 2

11

親レイアウトの子を反復処理して、それらの可視性を確認できます。このようなもの:

LinearLaout parent = ...;
int childCount = parent.getChildCount();
int count = 0;
for(int i = 0; i < childCount; i++) {
    if(parent.getChildAt(i).getVisibility() == View.VISIBLE) {
        count++;
    }
}
System.out.println("Visible children: " + count);
于 2013-09-10T16:18:06.170 に答える
2

これは、LinearLayout、RelativeLayout、ScrollViewなどのViewGroupで表示される子の数を返す関数です..

private int countVisible(ViewGroup myLayout)
{
    if(myLayout==null) return 0;
    int count = 0;
    for(int i=0;i<myLayout.getChildCount();i++)
    {
        if(myLayout.getChildAt(i).getVisibility()==View.VISIBLE)
            count++;
    }
    return count;
}
于 2013-09-10T16:18:46.783 に答える