我最近遇到同样的问题,我是用在Xamarin.Forms
MasterDetailPage
和Android的它不设置标题中心。
因此,明显的路线是创建一个自定义渲染器和override
其OnLayout
方法,并找到工具栏的TextView
并设置其Gravity
到Center
,容易吗?
但是,嘿,当我试图做到这一点myTextView.Gravity = Android.Views.GravityFlags.Center
它只是不起作用。我试过设置ForegroundGravity
但没有效果。
因此,最后我计算了中心X位置并设置了TextView
X位置和VOILLA!它现在在中心。这是我的解决方案。
[assembly: ExportRenderer(typeof(CustomMasterDetailPage), typeof(CustomMasterDetailPageRenderer))]
namespace myApp.Droid
{
public class CustomMasterDetailPageRenderer : MasterDetailPageRenderer
{
protected override void OnLayout(bool changed, int l, int t, int r, int b)
{
base.OnLayout(changed, l, t, r, b);
var toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
for (int index = 0; index < toolbar.ChildCount; index++)
{
if (toolbar.GetChildAt(index) is TextView)
{
var title = toolbar.GetChildAt(index) as TextView;
float toolbarCenter = toolbar.MeasuredWidth/2;
float titleCenter = title.MeasuredWidth/2;
title.SetX(toolbarCenter - titleCenter);
}
}
}
}
}