//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);
        }