//UI public static List <View> GetDescendantViews(this ViewGroup group, List <View> views = null) { if (views == null) { views = new List <View>(); } List <View> newViews = group.GetAllViews(); views.AddRange(newViews); foreach (View groupView in newViews.Where(x => x is ViewGroup)) { GetDescendantViews(((ViewGroup)groupView), views); } return(views); }