【发布时间】:2018-07-29 00:51:09
【问题描述】:
所以我正在开发 Android 应用程序。现在我正在创建 MainPage ,我在其中插入 Entry ,它一如既往地具有底线。我的预览器上的底线是White,而在我的手机上它似乎是Black。
所以为了解决这个问题,我决定使用渲染器,看看我是否可以解决它。
我在 App 中创建了名为 CustomEntryRenderer 的类,它继承自 Entry。
然后我在 App.Android 中创建了名为 CustomEntryRednererAndroid 的类,它应该改变底部输入行的颜色。但这不影响它。我尝试对在互联网上找到的一些自定义渲染器做同样的事情。
例如删除底线也不会影响程序: removing line
来自 MainPage.xaml 的条目:
<Entry
Grid.Row="4"
Grid.ColumnSpan="2"
TextColor="Silver"
Placeholder="Write Your nickname"
PlaceholderColor="Silver"
/>
CustomEntryRenderer:
public class CustomEntryRenderer : Entry
{
}
CustomEntryRendererAndroid:
[assembly: ExportRenderer(typeof(CustomEntryRenderer), typeof(MyEntryRenderer))]
namespace App3.Droid
{
public class MyEntryRenderer : EntryRenderer
{
public MyEntryRenderer(Context context) : base(context) { }
protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
{
base.OnElementChanged(e);
if (Control == null || e.NewElement == null) return;
if (Build.VERSION.SdkInt >= BuildVersionCodes.Lollipop)
Control.BackgroundTintList = ColorStateList.ValueOf(Android.Graphics.Color.White);
else
Control.Background.SetColorFilter(Android.Graphics.Color.White, PorterDuff.Mode.SrcAtop);
}
}
}
Top answer for Android
出于某种原因,在CustomEntryRendererAndroid.cs 中我也不得不使用Android.Graphic 而不是Xamarin.Forms.Color。但我认为这不是问题。
我已经尝试了几个小时,但找不到摆脱这种情况的方法。 任何想法都将不胜感激。
【问题讨论】:
标签: c# android visual-studio xamarin xamarin.forms