这是我的渲染器代码
public class CustomEditorControlRenderer: EditorRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Editor> e)
{
base.OnElementChanged(e);
if (e.NewElement != null)
{
var _element = e.NewElement as EditorControl;
this.Control.Hint = _element.Placeholder;
Control.SetHintTextColor(_element.PlaceholderColor.ToAndroid());
this.Control.SetBackgroundColor(Android.Graphics.Color.Transparent);
this.Control.SetCursorVisible(true);
Control.Background.SetColorFilter(Android.Graphics.Color.White, PorterDuff.Mode.SrcAtop);
}
}
}
Control.Background.SetColorFilter(Android.Graphics.Color.White, PorterDuff.Mode.SrcAtop);
无效
答案 0 :(得分:0)
我认为你不需要渲染器,那么用Stacking将你的编辑器包装在StackLayout中呢? 这应该做的工作:
<StackLayout BackgroundColor="White">
<StackLayout BackgroundColor="Black" Padding="1">
<Editor BackgroundColor="White" />
</StackLayout>
</StackLayout>
答案 1 :(得分:0)
您可以使用selector
来实现它:
protected override void OnElementChanged(ElementChangedEventArgs<Editor> e)
{
base.OnElementChanged(e);
if (Control!= null)
{
//Control.SetBackground(null);
Control.SetBackgroundResource(Resource.Drawable.et_underline_selector);
}
}
将这些文件放入drawable
文件夹:
et_underline_selector.xml
:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="false" android:drawable="@drawable/et_underline_unselected"/>
<item android:state_focused="true" android:drawable="@drawable/et_underline_selected"/>
</selector>
et_underline_unselected.xml
:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:bottom="0dp"
android:left="-2dp"
android:right="-2dp"
android:top="-2dp">
<shape>
<solid android:color="@android:color/transparent" />
<stroke
android:width="1dp"
android:color="@android:color/darker_gray" />
<padding android:bottom="4dp" />
</shape>
</item>
</layer-list>
et_underline_selected.xml
:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:bottom="0dp"
android:left="-2dp"
android:right="-2dp"
android:top="-2dp">
<shape>
<solid android:color="@android:color/transparent" />
<stroke
android:color="@android:color/holo_green_light"
android:width="2dp" />
<padding android:bottom="4dp" />
</shape>
</item>
</layer-list>