【问题标题】:text alignment on a picker xamarin forms选择器 xamarin 表单上的文本对齐
【发布时间】:2018-06-02 17:00:55
【问题描述】:

我无法将展开的选择器上的文本对齐到中心,我原以为会是这样的......

这是模拟器上的选择器...

如何让 SIZE 文本位于中间但保持行扩展也可以通过 xaml 代码而不是 c# 代码来完成

干杯。

【问题讨论】:

  • 代码的图像很烦人,只是说。
  • 仅供参考,HorizontalOptions 不是文本对齐,而是具体的选择器如何水平放置

标签: c# android ios xamarin.forms


【解决方案1】:

更新***

其实很简单:

<Picker Title="Selecione o bairro" HorizontalTextAlignment="Center"/> 

...旧

您需要为此使用CustomRenderer

安卓

[assembly: ExportRenderer(typeof(BetterPicker), typeof(BetterPickerRenderer))]

namespace MDWS.Droid
{
    public class BetterPickerRenderer : PickerRenderer
    {
        protected override void OnElementChanged(ElementChangedEventArgs<Picker> e)
        {
            base.OnElementChanged(e);

            if (Control != null)
            {
                Control.Gravity = GravityFlags.CenterHorizontal;
            }
        }
    }
}

IOS:

[assembly: ExportRenderer(typeof(BetterPicker), typeof(BetterPickerRenderer))]

namespace YourNameSpace.iOS
{
    public class BetterPickerRenderer : PickerRenderer
    {
        protected override void OnElementChanged(ElementChangedEventArgs<Picker> e)
        {
            base.OnElementChanged(e);

            if (Control != null)
            {
                Control.TextAlignment = UITextAlignment.Center;
            }
        }
    }
}

【讨论】:

  • 嗨,这可行,但它将选择器显示为可滚动的选择器。例如,如果总共有 5 个项目,那么只有 3 个是可见的,您需要滚动它。如何设置对齐但保留所有可见的项目?
【解决方案2】:

恐怕您必须为此实施CustomRenderer
对于每个平台OnElementChanged,您必须为Picker 的标题设置对齐方式。

幸运的是,这个话题在official guide 中得到了很好的解释。

P.S.:欢迎来到 stackoverflow.com,请花点时间阅读这篇 post,它很好地解释了为什么发布代码截图是一种不好的做法。

祝你好运!

【讨论】:

    【解决方案3】:

    我刚刚遇到了同样的问题,并注意到如果您使用“使用”设置 android 渲染器

    using Xamarin.Forms.Platform.Android.AppCompat;
    

    它保留了原始样式

    【讨论】:

      【解决方案4】:

      你可以试试 LayoutOptions.Center

      否则我们需要自定义渲染器。

      【讨论】:

        猜你喜欢
        • 2015-12-04
        • 1970-01-01
        • 2019-04-15
        • 2019-08-30
        • 1970-01-01
        • 2023-03-05
        • 1970-01-01
        • 2018-04-14
        • 1970-01-01
        相关资源
        最近更新 更多