xmarin.android导航栏,Xamarin.Forms中心标题和透明导航栏 - Android
小智..9我最近遇到同样的问题,我是用MasterDetailPage在Xamarin.Forms与Android中并不设置标题中心.那么,显而易见的路线是创建一个自定义渲染器override及其OnLayout方法,并找到工具栏TextView并将其设置Gravity为Center,对吗?但是,当我尝试这样做时,myTextView.Gravity = Android.Views.Gravity
小智..
9
我最近遇到同样的问题,我是用MasterDetailPage在Xamarin.Forms与Android中并不设置标题中心.
那么,显而易见的路线是创建一个自定义渲染器override及其OnLayout方法,并找到工具栏TextView并将其设置Gravity为Center,对吗?
但是,当我尝试这样做时,myTextView.Gravity = Android.Views.GravityFlags.Center它只是不起作用.我试过设置ForegroundGravity但没有效果.
所以最后我计算了中心X的位置并设置了TextViewX位置和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(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);
}
}
}
}
}
更多推荐
所有评论(0)