Click here to Skip to main content
15,895,256 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi,

i am using the following code to align action bar title in the center in xamarin c# cross platoform application.

C#
public static void SetActionbarText(Activity activity, string text)
       {
           // Setting custom view enable
           if (activity != null)
           {
               activity.ActionBar.SetHomeButtonEnabled(true);
               activity.ActionBar.SetIcon(Android.Resource.Color.Transparent);
               activity.ActionBar.SetDisplayShowCustomEnabled(true);

               LinearLayout linearLayout = new LinearLayout(activity);
               linearLayout.SetGravity(GravityFlags.CenterVertical);
               LinearLayout.LayoutParams textViewParameters =
                   new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MatchParent, LinearLayout.LayoutParams.MatchParent);
               textViewParameters.RightMargin = (int)(40 * activity.Resources.DisplayMetrics.Density);
               TextView modelTitle = new TextView(activity);
               modelTitle.Text = text;
               modelTitle.Gravity = GravityFlags.Center;
               modelTitle.TextSize = 20;
               modelTitle.SetTextColor(Android.Graphics.Color.White);
               linearLayout.AddView(modelTitle, textViewParameters);
               ActionBar.LayoutParams actionbarParams =
                   new ActionBar.LayoutParams(ActionBar.LayoutParams.MatchParent, ActionBar.LayoutParams.MatchParent);
               activity.ActionBar.SetCustomView(linearLayout, actionbarParams);
           }
       }


this works fine in portrait mode but not in landscape mode. the title moves to right side in landscape mode and once we change orientation it hides completly. Can anyone check what i am missing?
Posted

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900