Fred Vicentin
Fred Vicentin

Reputation: 977

Align ActionBar Title to center Xamarin

I'm using Xamarin Forms, i removed my icon, now I want to put the Action Bar Title at center, actually it's on left.

I saw some pages saying to I use getSupportActionBar() but this is not found on my visual studio, I'm trying to remove it on my Style.xml or on my MainActivity.

enter image description here

MainActivity.XML

using System;

using Android.App;
using Android.Content.PM;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;

using Xamarin.Forms;
using Xamarin.Forms.Platform.Android;

namespace App5.Droid
{
    [Activity(Label = "App5", Icon = "@drawable/icon", Theme = "@style/CustomActionBarTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
    public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity
    {        
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);            
            global::Xamarin.Forms.Forms.Init(this, bundle);
            ActionBar.SetIcon(Android.Resource.Color.Transparent);
            LoadApplication(new App());
        }

    }
}

Style.xml:

<?xml version="1.0" encoding="utf-8" ?>
<resources>
  <!-- the theme applied to the application or activity -->
  <style name="CustomActionBarTheme"
         parent="@android:style/Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/MyActionBar</item>

  </style>
  <!-- ActionBar styles -->
  <style name="MyActionBar"
         parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
  <item name="android:background">#000000</item>

  </style>

</resources>

Upvotes: 1

Views: 2888

Answers (1)

Jorgesys
Jorgesys

Reputation: 126445

Working with Xamarin, the only way is programatically:

LinearLayout lLayout = new LinearLayout(activity);
lLayout .SetGravity(GravityFlags.CenterVertical);
lLayout .LayoutParams textViewParameters = 
                        new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MatchParent, LinearLayout.LayoutParams.MatchParent);
textViewParameters.RightMargin = (int)(30 * activity.Resources.DisplayMetrics.Density);

TextView myTitle = new TextView(activity);        
myTitle.Text = text;
myTitle.Gravity = GravityFlags.Center;
lLayout.AddView(myTitle ,textViewParameters);

ActionBar.LayoutParams actionbarParams = new ActionBar.LayoutParams(ActionBar.LayoutParams.MatchParent,ActionBar.LayoutParams.MatchParent);
activity.ActionBar.SetCustomView(lLayout, actionbarParams);

Upvotes: 1

Related Questions