C#Xamarin:如何在android中居按钮文本?

时间:2018-02-08 05:18:10

标签: xamarin xamarin.forms xamarin.android

在我的PCL中我使用的是Steppers,我改变了颜色。在我的Android中,我更改了Stepper的按钮大小,如下所示:

protected override void OnElementChanged(ElementChangedEventArgs<Stepper> e)
{
   base.OnElementChanged(e);
   ExtStepper s = Element as ExtStepper;

   if (Control != null)
   {
      var downBtn = Control.GetChildAt(0) as Android.Widget.Button;
      downBtn.SetMinHeight(0);
      downBtn.SetMinimumHeight(0);
      downBtn.SetHeight(80);
      downBtn.SetMinWidth(0);
      downBtn.SetMinimumWidth(0);
      downBtn.SetWidth(150);

      var upBtn = Control.GetChildAt(1) as Android.Widget.Button;
      upBtn.SetMinHeight(0);
      upBtn.SetMinimumHeight(0);
      upBtn.SetHeight(80);
      upBtn.SetMinWidth(0);
      upBtn.SetMinimumWidth(0);
      upBtn.SetWidth(150);
    }
}

这就像我希望它能够正常工作一样,但问题是-+文字不再可见,如下图所示。

enter image description here

我尝试过以下代码无济于事。

downBtn.Gravity = Android.Views.GravityFlags.CenterHorizontal;
downBtn.Gravity = Android.Views.GravityFlags.CenterVertical;
downBtn.Gravity = Android.Views.GravityFlags.Center;
downBtn.TextAlignment = Android.Views.TextAlignment.Center;

有人建议如何做到这一点?

编辑:

此外,如图所示,我的步进按钮之间不再有空格。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

  

这就像我希望它能够工作一样,但问题是 - 和+文本不再可见,如下图所示。

您需要设置清除/设置按钮的内部填充:

 if (Control != null)
 {
      var downBtn = Control.GetChildAt(0) as Android.Widget.Button;
      downBtn.SetMinHeight(0);
      downBtn.SetMinimumHeight(0);
      downBtn.SetHeight(40);
      downBtn.SetMinWidth(0);
      downBtn.SetMinimumWidth(0);
      downBtn.SetWidth(150);
      //clear the padding to show the font
      downBtn.SetPadding(0, 0, 0, 0);


      var upBtn = Control.GetChildAt(1) as Android.Widget.Button;
      upBtn.SetMinHeight(0);
      upBtn.SetMinimumHeight(0);
      upBtn.SetHeight(40);
      upBtn.SetMinWidth(0);
      upBtn.SetMinimumWidth(0);
      upBtn.SetWidth(150);
      //clear the padding to show the font
      upBtn.SetPadding(0, 0, 0, 0);
 }