示例#1
0
 public async Task SnackBar(string message, TypeSnack typesnack)
 {
     if (typesnack == TypeSnack.Error)
     {
         Activity           activity                     = CrossCurrentActivity.Current.Activity;
         Android.Views.View activityRootView             = activity.FindViewById(Android.Resource.Id.Content);
         Android.Support.Design.Widget.Snackbar snackBar = Android.Support.Design.Widget.Snackbar.Make(activityRootView, message, Snackbar.LengthLong);
         snackBar.SetActionTextColor(Android.Graphics.Color.ParseColor("#FFFFFF"));
         Android.Views.View snackbarview = snackBar.View;
         snackbarview.SetBackgroundResource(Resource.Drawable.snackerror);
         ViewGroup.MarginLayoutParams paramss = (ViewGroup.MarginLayoutParams)snackbarview.LayoutParameters;
         paramss.SetMargins(30, 0, 30, 40);
         snackbarview.SetBackground(
             MainActivity.CurrentActivity.ApplicationContext.GetDrawable(Resource.Drawable.snackerror));
         snackBar.Show();
     }
     else
     {
         Activity           activity                     = CrossCurrentActivity.Current.Activity;
         Android.Views.View activityRootView             = activity.FindViewById(Android.Resource.Id.Content);
         Android.Support.Design.Widget.Snackbar snackBar = Android.Support.Design.Widget.Snackbar.Make(activityRootView, message, Snackbar.LengthLong);
         snackBar.SetActionTextColor(Android.Graphics.Color.ParseColor("#FFFFFF"));
         Android.Views.View snackbarview = snackBar.View;
         snackbarview.SetBackgroundResource(Resource.Drawable.snackBackground);
         ViewGroup.MarginLayoutParams paramss = (ViewGroup.MarginLayoutParams)snackbarview.LayoutParameters;
         paramss.SetMargins(30, 0, 30, 40);
         snackbarview.SetBackground(
             MainActivity.CurrentActivity.ApplicationContext.GetDrawable(Resource.Drawable.snackBackground));
         snackBar.Show();
     }
 }
        private void showArrow(int whichArrow, float requestedX, float rootWidth)
        {
            View showArrow = (whichArrow == Resource.Id.arrow_up) ? mArrowUp : mArrowDown;
            View hideArrow = (whichArrow == Resource.Id.arrow_up) ? mArrowDown : mArrowUp;

            showArrow.Visibility = ViewStates.Visible;

            int arrowWidth = showArrow.MeasuredWidth;

            ViewGroup.MarginLayoutParams param = (ViewGroup.MarginLayoutParams)showArrow.LayoutParameters;

            if (requestedX > rootWidth - 17 - arrowWidth / 2)
            {
                requestedX = rootWidth - 17 - arrowWidth / 2;
            }
            else if (requestedX < 17 + arrowWidth / 2)
            {
                requestedX = 17 + arrowWidth / 2;
            }

            param.LeftMargin = (int)Math.Round(requestedX - arrowWidth / 2);

            hideArrow.Visibility = ViewStates.Invisible;
            showArrow.Invalidate();
            hideArrow.Invalidate();
        }
        public static ViewGroup.MarginLayoutParams WithMargins(this ViewGroup.MarginLayoutParams self, int?left, int?top, int?right, int?bottom)
        {
            var actualTop    = top ?? self.TopMargin;
            var actualLeft   = left ?? self.LeftMargin;
            var actualRight  = right ?? self.RightMargin;
            var actualBottom = bottom ?? self.BottomMargin;

            switch (self)
            {
            case LinearLayout.LayoutParams linearParams:
                var newLinearLayoutParams = new LinearLayout.LayoutParams(self);
                newLinearLayoutParams.SetMargins(actualLeft, actualTop, actualRight, actualBottom);
                return(newLinearLayoutParams);

            case RelativeLayout.LayoutParams relativeParams:
                var newRelativeLayoutParams = new RelativeLayout.LayoutParams(self);
                newRelativeLayoutParams.SetMargins(actualLeft, actualTop, actualRight, actualBottom);
                return(newRelativeLayoutParams);

            case FrameLayout.LayoutParams frameParams:
                var newFrameLayoutParams = new FrameLayout.LayoutParams(self);
                newFrameLayoutParams.SetMargins(actualLeft, actualTop, actualRight, actualBottom);
                return(newFrameLayoutParams);

            case RecyclerView.LayoutParams recyclerParams:
                var newRecyclerParams = new FrameLayout.LayoutParams(self);
                newRecyclerParams.SetMargins(actualLeft, actualTop, actualRight, actualBottom);
                return(newRecyclerParams);
            }

            return(null);
        }
        public void wrapTabIndicatorToTitle(TabLayout tabLayout, int externalMargin, int internalMargin)
        {
            View tabStrip = tabLayout.GetChildAt(0);

            if (tabStrip is ViewGroup)
            {
                ViewGroup tabStripGroup = (ViewGroup)tabStrip;
                int       childCount    = ((ViewGroup)tabStrip).ChildCount;
                for (int i = 0; i < childCount; i++)
                {
                    View tabView = tabStripGroup.GetChildAt(i);
                    tabView.SetMinimumWidth(0);
                    tabView.SetPadding(0, tabView.PaddingTop, 0, tabView.PaddingBottom);
                    if (tabView.LayoutParameters is ViewGroup.MarginLayoutParams)
                    {
                        ViewGroup.MarginLayoutParams layoutParams = (ViewGroup.MarginLayoutParams)tabView.LayoutParameters;
                        if (i == 0)
                        {
                            setMargin(layoutParams, externalMargin, internalMargin);
                        }
                        else if (i == childCount - 1)
                        {
                            setMargin(layoutParams, internalMargin, externalMargin);
                        }
                        else
                        {
                            setMargin(layoutParams, internalMargin, internalMargin);
                        }
                    }
                }

                tabLayout.RequestLayout();
            }
        }
示例#5
0
            public void UpdateSnackbar(CoordinatorLayout parent, View dependency, View child)
            {
                if (!_isTablet && _isShy && dependency is Snackbar.SnackbarLayout)
                {
                    if (_snackbarHeight == -1)
                    {
                        _snackbarHeight = dependency.Height;
                    }
                    if (ViewCompat.GetTranslationY(child) != 0)
                    {
                        return;
                    }

                    int targetPadding = _bottomNavHeight + _snackbarHeight - _defaultOffset;

                    ViewGroup.MarginLayoutParams layoutParams = (ViewGroup.MarginLayoutParams)dependency.LayoutParameters;
                    layoutParams.BottomMargin = targetPadding;

                    child.BringToFront();
                    child.Parent.RequestLayout();

                    if (Build.VERSION.SdkInt < BuildVersionCodes.Kitkat)
                    {
                        ((View)child.Parent).Invalidate();
                    }
                }
            }
示例#6
0
 public async Task SnackBarSucces(string message, string title, TypeSnackBar typeSnackBar)
 {
     if (typeSnackBar == TypeSnackBar.Bottom)
     {
         Activity           activity                     = CrossCurrentActivity.Current.Activity;
         Android.Views.View activityRootView             = activity.FindViewById(Android.Resource.Id.Content);
         Android.Support.Design.Widget.Snackbar snackBar = Android.Support.Design.Widget.Snackbar.Make(activityRootView, message, Snackbar.LengthLong);
         snackBar.SetActionTextColor(Android.Graphics.Color.ParseColor("#FFFFFF"));
         Android.Views.View snackbarview = snackBar.View;
         snackbarview.SetBackgroundResource(Resource.Drawable.snackBackground);
         ViewGroup.MarginLayoutParams paramss = (ViewGroup.MarginLayoutParams)snackbarview.LayoutParameters;
         paramss.SetMargins(30, 0, 30, 40);
         snackbarview.LayoutParameters = paramss;
         snackbarview.SetBackground(
             MainActivity.Current.ApplicationContext.GetDrawable(Resource.Drawable.snackBackground));
         snackBar.Show();
     }
     else if (typeSnackBar == TypeSnackBar.Top)
     {
         CookieBar.Build(MainActivity.Current)
         .SetIcon(Resource.Drawable.ic_done)
         .SetTitle(title)
         .SetIconAnimation(Resource.Animator.iconspin)
         .SetBackgroundColor(Resource.Color.backgroundcoockiesuccess)
         .SetTitleColor(Resource.Color.cookiebartitle)
         .SetMessageColor(Resource.Color.cookiebartitle)
         .SetMessage(message)
         .SetEnableAutoDismiss(true)
         .SetSwipeToDismiss(true)
         .Show();
     }
 }
示例#7
0
        private void SetMargin(View child)
        {
            int margin = DpToPx(8);
            var param  = new ViewGroup.MarginLayoutParams(child.LayoutParameters);

            param.SetMargins(margin, margin, margin, margin);
            child.LayoutParameters = param;
        }
示例#8
0
 public static void SetMargins(this View v, int l, int t, int r, int b)
 {
     if (v.LayoutParameters is ViewGroup.MarginLayoutParams)
     {
         ViewGroup.MarginLayoutParams p = (ViewGroup.MarginLayoutParams)v.LayoutParameters;
         p.SetMargins(l, t, r, b);
         v.RequestLayout();
     }
 }
示例#9
0
        private static void SetTopMargin(View v, int topMargin)
        {
            ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams)v.LayoutParameters;

            if (lp.TopMargin != topMargin)
            {
                lp.TopMargin       = topMargin;
                v.LayoutParameters = lp;
            }
        }
示例#10
0
        private void SetMapviewMargin(int margin)
        {
            // Get the layout parameters for the container.
            ViewGroup.MarginLayoutParams parameters = (ViewGroup.MarginLayoutParams)_layoutContainer.LayoutParameters;

            // Set the margins.
            parameters.SetMargins(margin, margin, margin, margin);

            // Apply the layout.
            _layoutContainer.LayoutParameters = parameters;
        }
示例#11
0
        public override void OnWindowFocusChanged(bool hasFocus)
        {
            ViewGroup.MarginLayoutParams lParams = (ViewGroup.MarginLayoutParams)viewC1.LayoutParameters;

            animateView(view1);
            animateView(view2, viewC1.Width + lParams.RightMargin);
            animateView(view3, viewC1.Width + lParams.RightMargin);
            animateView(view4);
            animateView(view5);
            animateView(view6);
        }
示例#12
0
        private void SetActionBarMargin(ViewGroup.MarginLayoutParams parameters, Activity activity)
        {
            var actionBarContainerId = Android.Content.Res.Resources.System.GetIdentifier("action_bar_container", "id", "android");
            var actionBarContainer   = activity.FindViewById(actionBarContainerId);

            // The action bar is present: the app is using a Holo theme.
            if (null != actionBarContainer)
            {
                parameters.TopMargin = actionBarContainer.Bottom;
            }
        }
        /**
         * Adds a {@link Crouton} to the {@link ViewParent} of it's {@link Activity}.
         *
         * @param crouton
         *     The {@link Crouton} that should be added.
         */

        private void AddCroutonToView(Crouton crouton)
        {
            // don't Add if it is already showing
            if (crouton.IsShowing())
            {
                return;
            }

            View croutonView = crouton.GetView();

            if (null == croutonView.Parent)
            {
                ViewGroup.LayoutParams parameters = croutonView.LayoutParameters;
                if (null == parameters)
                {
                    parameters = new ViewGroup.MarginLayoutParams(ViewGroup.LayoutParams.MatchParent,
                                                                  ViewGroup.LayoutParams.WrapContent);
                }
                // display Crouton in ViewGroup is it has been supplied
                if (null != crouton.GetViewGroup())
                {
                    ViewGroup croutonViewGroup = crouton.GetViewGroup();
                    if (ShouldAddViewWithoutPosition(croutonViewGroup))
                    {
                        croutonViewGroup.AddView(croutonView, parameters);
                    }
                    else
                    {
                        croutonViewGroup.AddView(croutonView, 0, parameters);
                    }
                }
                else
                {
                    Activity activity = crouton.GetActivity();
                    if (null == activity || activity.IsFinishing)
                    {
                        return;
                    }
                    HandleTranslucentActionBar((ViewGroup.MarginLayoutParams)parameters, activity);
                    HandleActionBarOverlay((ViewGroup.MarginLayoutParams)parameters, activity);

                    activity.AddContentView(croutonView, parameters);
                }
            }

            croutonView.RequestLayout(); // This is needed so the animation can use the measured with/height
            ViewTreeObserver observer = croutonView.ViewTreeObserver;

            if (null != observer)
            {
                CallOnGlobalLayout(crouton, croutonView);
            }
        }
        private static void SetupProgressDialog(MaterialDialog dialog)
        {
            MaterialDialog.Builder builder = dialog.mBuilder;
            if (builder.mIndeterminateProgress || builder.mProgress > -2)
            {
                dialog.mProgress = (ProgressBar)dialog.view.FindViewById(Android.Resource.Id.Progress);

                // Manually color progress bar on pre-Lollipop, since Material/AppCompat themes only do it on API 21+
                if (Build.VERSION.SdkInt < BuildVersionCodes.Lollipop)
                {
                    Drawable indDraw = dialog.mProgress.IndeterminateDrawable;
                    if (indDraw != null)
                    {
                        indDraw.SetColorFilter(builder.accentColor, PorterDuff.Mode.SrcAtop);
                        dialog.mProgress.IndeterminateDrawable = indDraw;
                    }
                    Drawable regDraw = dialog.mProgress.ProgressDrawable;
                    if (regDraw != null)
                    {
                        regDraw.SetColorFilter(builder.accentColor, PorterDuff.Mode.SrcAtop);
                        dialog.mProgress.ProgressDrawable = regDraw;
                    }
                }

                if (!builder.mIndeterminateProgress)
                {
                    dialog.mProgress.Progress = 0;
                    dialog.mProgress.Max      = builder.mProgressMax;
                    dialog.mProgressLabel     = (TextView)dialog.view.FindViewById(Resource.Id.label);
                    dialog.mProgressMinMax    = (TextView)dialog.view.FindViewById(Resource.Id.minMax);
                    if (builder.mShowMinMax)
                    {
                        dialog.mProgressMinMax.Visibility = ViewStates.Visible;
                        dialog.mProgressMinMax.Text       = "0/" + builder.mProgressMax;
                        ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams)dialog.mProgress.LayoutParameters;
                        lp.LeftMargin  = 0;
                        lp.RightMargin = 0;
                    }
                    else
                    {
                        dialog.mProgressMinMax.Visibility = ViewStates.Gone;
                    }
                    dialog.mProgressLabel.Text = "0%";
                }

                if (builder.title == null)
                {
                    // Redistribute main frame's bottom padding to the top padding if there's no title
                    View mainFrame = dialog.view.FindViewById(Resource.Id.mainFrame);
                    mainFrame.SetPadding(mainFrame.PaddingLeft, mainFrame.PaddingBottom, mainFrame.PaddingRight, mainFrame.PaddingBottom);
                }
            }
        }
示例#15
0
 private void HandleActionBarOverlay(ViewGroup.MarginLayoutParams parameters, Activity activity)
 {
     // ActionBar overlay is only available as of Android 3.0 Honeycomb.
     if (Build.VERSION.SdkInt >= Build.VERSION_CODES.Honeycomb)
     {
         bool flags = activity.Window.HasFeature(WindowFeatures.ActionBarOverlay);
         if (flags)
         {
             SetActionBarMargin(parameters, activity);
         }
     }
 }
示例#16
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Login);

            RequestedOrientation = ScreenOrientation.SensorPortrait;


            Button button = FindViewById <Button>(Resource.Id.btLogin);

            button.Click += btloginClick;

            Button buttonForgot = FindViewById <Button>(Resource.Id.btForgot);

            buttonForgot.Click += btForgotClick;

            username = FindViewById <EditText>(Resource.Id.tv_username);
            username.SetOnEditorActionListener(this);

            password = FindViewById <EditText>(Resource.Id.tv_password);
            password.SetOnEditorActionListener(this);

            cb_rememberMe = FindViewById <CheckBox>(Resource.Id.cb_rememberMe);
            cb_rememberMe.SetOnEditorActionListener(this);

            var RemmemberMe = Settings.RememberMe;

            if (RemmemberMe)
            {
                cb_rememberMe.Checked = true;
                var temp = Settings.Username;
                username.Text = temp;
                password.Text = Settings.Password;
            }

            var metrics    = Resources.DisplayMetrics;
            var widthInDp  = ConvertPixelsToDp(metrics.WidthPixels);
            var heightInDp = ConvertPixelsToDp(metrics.HeightPixels);

            if (heightInDp > 1024)
            {
                linearLayout4 = FindViewById <LinearLayout>(Resource.Id.linearLayout4);
                ViewGroup.MarginLayoutParams ll = (ViewGroup.MarginLayoutParams)linearLayout4.LayoutParameters;
                ll.TopMargin = 55;
            }

            Context context = this.ApplicationContext;

            Version = context.PackageManager.GetPackageInfo(context.PackageName, 0).VersionName;
        }
示例#17
0
 /**
  * Update floating action button bottom margin
  */
 public void updateFloatingActionButton(View dependency)
 {
     if (dependency != null && dependency is FloatingActionButton)
     {
         floatingActionButton = (FloatingActionButton)dependency;
         if (!fabBottomMarginInitialized && dependency.LayoutParameters is ViewGroup.MarginLayoutParams)
         {
             fabBottomMarginInitialized = true;
             ViewGroup.MarginLayoutParams p = (ViewGroup.MarginLayoutParams)dependency.LayoutParameters;
             fabDefaultBottomMargin = p.BottomMargin;
         }
     }
 }
 private void setMargin(ViewGroup.MarginLayoutParams layoutParams, int start, int end)
 {
     if (Build.VERSION.SdkInt >= BuildVersionCodes.JellyBeanMr1)
     {
         layoutParams.MarginStart = start;
         layoutParams.MarginEnd   = end;
     }
     else
     {
         layoutParams.LeftMargin  = start;
         layoutParams.RightMargin = end;
     }
 }
示例#19
0
 private void HandleTranslucentActionBar(ViewGroup.MarginLayoutParams parameters, Activity activity)
 {
     // Translucent status is only available as of Android 4.4 Kit Kat.
     if (Build.VERSION.SdkInt >= Build.VERSION_CODES.Kitkat)
     {
         var flags = (int)activity.Window.Attributes.Flags;
         var translucentStatusFlag = (int)WindowManagerFlags.TranslucentStatus;
         if ((flags & translucentStatusFlag) == translucentStatusFlag)
         {
             SetActionBarMargin(parameters, activity);
         }
     }
 }
示例#20
0
 /// <summary>
 /// Get a view to represent a single item in the list.
 /// </summary>
 /// <param name="position">The index of the item to retrieve a view for.</param>
 /// <param name="convertView">A View that may be recycled.</param>
 /// <param name="parent">The owner of the new view.</param>
 /// <returns>The new View.</returns>
 public override View GetView(int position, View convertView, ViewGroup parent) {
   TextView res = convertView as TextView;
   if (res == null) {
     res = new TextView(context.Activity);
     res.SetTextAppearance(Android.Resource.Style.TextAppearanceMedium);
     var layoutParams = new ViewGroup.MarginLayoutParams(ViewGroup.LayoutParams.MatchParent,
       ViewGroup.LayoutParams.WrapContent);
     int margin = (int)(5f * context.Activity.Resources.DisplayMetrics.Density);
     res.LayoutParameters = layoutParams;
     res.SetPadding(0, margin, 0, margin);
   }
   res.Text = this[position].Name;
   return res;
 }
示例#21
0
        private void handleActionBarOverlay(ViewGroup.MarginLayoutParams parameters, Activity activity)
        {
            // ActionBar overlay is only available as of Android 3.0 Honeycomb.
            if (Build.VERSION.SdkInt < BuildVersionCodes.Honeycomb)
            {
                return;
            }
            var flags = activity.Window.HasFeature(WindowFeatures.ActionBarOverlay);

            if (flags)
            {
                SetActionBarMargin(parameters, activity);
            }
        }
示例#22
0
        /**
         * Update Snackbar bottom margin
         */
        public void updateSnackbar(View child, View dependency)
        {
            if (dependency != null && dependency is Snackbar.SnackbarLayout)
            {
                snackbarLayout = (Snackbar.SnackbarLayout)dependency;
                if (Build.VERSION.SdkInt >= BuildVersionCodes.Kitkat)
                {
                    snackbarLayout.AddOnLayoutChangeListener(
                        new CustomIOnLayoutChangeListener(
                            (View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) =>
                    {
                        if (floatingActionButton != null &&
                            floatingActionButton.LayoutParameters is ViewGroup.MarginLayoutParams)
                        {
                            ViewGroup.MarginLayoutParams p = (ViewGroup.MarginLayoutParams)floatingActionButton.LayoutParameters;
                            snackBarY       = bottom - v.GetY();
                            fabTargetOffset = fabDefaultBottomMargin - child.TranslationY + snackBarY;
                            p.SetMargins(p.LeftMargin, p.TopMargin, p.RightMargin, (int)fabTargetOffset);
                            floatingActionButton.RequestLayout();
                        }
                        // Pass navigation height to listener
                        if (navigationPositionListener != null)
                        {
                            navigationPositionListener.onPositionChange((int)(child.MeasuredHeight - child.TranslationY + snackBarY));
                        }
                    }
                            )
                        );
                }

                if (mSnackbarHeight == -1)
                {
                    mSnackbarHeight = dependency.Height;
                }

                int targetMargin = (int)(child.MeasuredHeight - child.TranslationY);
                if (Build.VERSION.SdkInt < BuildVersionCodes.Lollipop)
                {
                    child.BringToFront();
                }

                if (dependency.LayoutParameters is ViewGroup.MarginLayoutParams)
                {
                    ViewGroup.MarginLayoutParams p = (ViewGroup.MarginLayoutParams)dependency.LayoutParameters;
                    p.SetMargins(p.LeftMargin, p.TopMargin, p.RightMargin, targetMargin);
                    dependency.RequestLayout();
                }
            }
        }
示例#23
0
        /// <summary>
        /// Show arrow
        /// </summary>
        /// <param name="whichArrow"> arrow type resource id </param>
        /// <param name="requestedX"> distance from left screen </param>
        private void ShowArrow(int whichArrow, int requestedX)
        {
            View showArrow = (whichArrow == Resource.Id.arrow_up) ? mArrowUp : mArrowDown;
            View hideArrow = (whichArrow == Resource.Id.arrow_up) ? mArrowDown : mArrowUp;

            int arrowWidth = mArrowUp.MeasuredWidth;

            showArrow.Visibility = ViewStates.Visible;

            ViewGroup.MarginLayoutParams param = (ViewGroup.MarginLayoutParams)showArrow.LayoutParameters;

            param.LeftMargin = requestedX - arrowWidth / 2;

            hideArrow.Visibility = ViewStates.Invisible;
        }
示例#24
0
        private void OnGlobalLayoutChanged(ViewTreeObserver.IOnGlobalLayoutListener listener)
        {
            mRootLayout.ViewTreeObserver.RemoveOnGlobalLayoutListener(listener);

            mPagerElementActiveSize = mPagerIconsContainer.Height;
            mPagerElementNormalSize = System.Math.Min(mPagerIconsContainer.GetChildAt(0).Height,
                                                      mPagerIconsContainer.GetChildAt(mPagerIconsContainer.ChildCount - 1).Height);

            ViewGroup.MarginLayoutParams layoutParams = (ViewGroup.MarginLayoutParams)mPagerIconsContainer.GetChildAt(0).LayoutParameters;
            mPagerElementLeftMargin  = layoutParams.LeftMargin;
            mPagerElementRightMargin = layoutParams.RightMargin;

            mPagerIconsContainer.SetX(CalculateNewPagerPosition(0));
            mContentCenteredContainer.SetY((mContentRootLayout.Height / 2));
        }
            public void Run()
            {
                try
                {
                    int textLengthNew = Option.TextLength;

                    if (Option.TextLengthType == TypeLine)
                    {
                        if (TextView.Layout.LineCount <= Option.TextLength)
                        {
                            TextView.SetText(Text, TextView.BufferType.Spannable);
                            return;
                        }

                        ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams)TextView.LayoutParameters;

                        string subString = Text.ToString().Substring(TextView.Layout.GetLineStart(0), TextView.Layout.GetLineEnd(Option.TextLength - 1));
                        textLengthNew = subString.Length - (Option.MoreLabel.Length + 4 + lp.RightMargin / 6);
                    }

                    SpannableStringBuilder spendableStringBuilder = new SpannableStringBuilder(Text.SubSequence(0, textLengthNew));
                    spendableStringBuilder.Append(" ...");
                    spendableStringBuilder.Append(Option.MoreLabel);

                    SpannableString ss             = SpannableString.ValueOf(spendableStringBuilder);
                    ClickableSpan   rclickableSpan = new StRclickableSpan(Option, TextView, Text, StTools.StTypeText.ReadMore);

                    ss.SetSpan(rclickableSpan, ss.Length() - Option.MoreLabel.Length, ss.Length(), SpanTypes.ExclusiveExclusive);

                    switch (Build.VERSION.SdkInt)
                    {
                    case >= BuildVersionCodes.JellyBean when Option.ExpandAnimation:
                    {
                        LayoutTransition layoutTransition = new LayoutTransition();
                        layoutTransition.EnableTransitionType(LayoutTransitionType.Changing);
                        ((ViewGroup)TextView?.Parent).LayoutTransition = layoutTransition;
                        break;
                    }
                    }
                    //TextView.SetTextFuture(PrecomputedTextCompat.GetTextFuture(ss, TextViewCompat.GetTextMetricsParams(TextView), null));
                    TextView.SetText(ss, TextView.BufferType.Spannable);
                    TextView.MovementMethod = LinkMovementMethod.Instance;
                }
                catch (Exception e)
                {
                    Methods.DisplayReportResultTrack(e);
                }
            }
示例#26
0
        public override void OnDraw(Canvas c, RecyclerView parent, RecyclerView.State state)
        {
            base.OnDraw(c, parent, state);
            int left  = parent.PaddingLeft;
            int right = parent.Width - parent.PaddingRight;

            for (int i = 0; i < parent.ChildCount; i++)
            {
                View child = parent.GetChildAt(i);

                ViewGroup.MarginLayoutParams parameters = (ViewGroup.MarginLayoutParams)child.LayoutParameters;

                int top    = child.Bottom + parameters.BottomMargin;
                int bottom = top + drawable.IntrinsicHeight;

                drawable.SetBounds(left, top, right, bottom);
                drawable.Draw(c);
            }
        }
示例#27
0
        public void OnViewCreated(View view)
        {
            ScrollView = (HorizontalListView)view.FindViewById(Resource.Id.List1);
            sampleView = (FrameLayout)view.FindViewById(Resource.Id.SampleView);

            if (Samples.Count == 1)
            {
                ScrollView.Visibility = ViewStates.Gone;
                ViewGroup.MarginLayoutParams param = (ViewGroup.MarginLayoutParams)sampleView.LayoutParameters;
            }
            else
            {
                adapter               = new ListViewAdapter(activity, Samples, CurrentIndex);
                ScrollView.Adapter    = adapter;
                ScrollView.ItemClick += OnListItemClick;
            }

            RefreshSample(CurrentSample);
        }
        /**
         * Update top margin with animation
         */
        public static void updateTopMargin(View view, int fromMargin, int toMargin)
        {
            ValueAnimator animator = ValueAnimator.OfFloat(fromMargin, toMargin);

            animator.SetDuration(150);
            animator.AddUpdateListener(
                new CustomViewPropertyIAnimatorUpdateListener((valueAnimator) =>
            {
                float animatedValue = (float)valueAnimator.AnimatedValue;
                if (view.LayoutParameters is ViewGroup.MarginLayoutParams)
                {
                    ViewGroup.MarginLayoutParams p = (ViewGroup.MarginLayoutParams)view.LayoutParameters;
                    p.SetMargins(p.LeftMargin, (int)animatedValue, p.RightMargin, p.BottomMargin);
                    view.RequestLayout();
                }
            })
                );
            animator.Start();
        }
        protected internal virtual void SetVerticalMargins(View view, int TopMargin, int BottomMargin)
        {
            ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams)view.LayoutParameters;
            bool changed = false;

            if (TopMargin > -1 && lp.TopMargin != TopMargin)
            {
                lp.TopMargin = TopMargin;
                changed      = true;
            }
            if (BottomMargin > -1 && lp.BottomMargin != BottomMargin)
            {
                lp.BottomMargin = BottomMargin;
                changed         = true;
            }
            if (changed)
            {
                view.LayoutParameters = lp;
            }
        }
        private static void SetMargin(ViewGroup.MarginLayoutParams layoutParams,
                                      int margin,
                                      int marginLeft, int marginRight,
                                      int marginTop, int marginBottom)
        {
            if (marginLeft >= 0)
            {
                layoutParams.LeftMargin = marginLeft;
            }
            else if (margin >= 0)
            {
                layoutParams.LeftMargin = margin;
            }

            if (marginRight >= 0)
            {
                layoutParams.RightMargin = marginRight;
            }
            else if (margin >= 0)
            {
                layoutParams.RightMargin = margin;
            }

            if (marginTop >= 0)
            {
                layoutParams.TopMargin = marginTop;
            }
            else if (margin >= 0)
            {
                layoutParams.TopMargin = margin;
            }

            if (marginBottom >= 0)
            {
                layoutParams.BottomMargin = marginBottom;
            }
            else if (margin >= 0)
            {
                layoutParams.BottomMargin = margin;
            }
        }