我最近遇到同樣的問題,我是用在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);
}
}
}
}
}