gpt4 book ai didi

android - Xamarin.Forms 中心标题和透明导航栏 - Android

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:21:13 26 4
gpt4 key购买 nike

我正在使用 Xamarin.Forms,但在 Android 上运行 2 个东西时遇到了问题:

  1. 我想将 ActionBar 设置为透明,设置 BarBackgroundColor 适用于所有颜色,但不适用于透明。
  2. 我希望页面标题居中,就像在 iOS 上一样。

    MainPage = new NavigationPage(
    new LoginPage(){Title = "Center"}) {BarBackgroundColor = Color.Transparent});

谁能帮我解决这个问题?

最佳答案

我最近遇到了同样的问题,我在 Xamarin.Forms 中使用 MasterDetailPage 并且在 android 中它没有将标题设置为居中。

因此,明显的路线是创建一个自定义渲染器并覆盖它的OnLayout方法,然后找到Toolbar的TextView并设置它的重力中心,简单吧?

但是嘿,当我尝试这样做时 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);
}
}
}
}
}

关于android - Xamarin.Forms 中心标题和透明导航栏 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33229560/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com