需要应用一种样式来摆脱 Entry 上的底线
Need to apply a style for getting rid of bottom line on Entry
首先,我是 Xamarin Forms 的新手,请多关照。我需要摆脱在 Android 中为输入输入显示的底线。它在 iOS 中显示良好。我做了一些研究,发现这个:
<style name="NoBaseline" parent="android:style/Widget.EditText">
<item name="android:background">#D3D3D3</item>
</style>
应该通过简单地使下划线与输入框的背景颜色相同来达到目的。我已将此代码放在我的 styles.xml 文件中,但我觉得我需要 应用 这种样式 某处 ,但我'我只是不确定在哪里。非常感谢对新手的任何帮助。
这是整个文件:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<style name="MyTheme" parent="MyTheme.Base">
</style>
<style name="MyTheme.Base"
parent="Theme.AppCompat.Light.DarkActionBar">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="colorPrimary">#2196F3</item>
<item name="colorPrimaryDark">#1976D2</item>
<item name="colorAccent">#FF4081</item>
<item name="windowActionModeOverlay">true</item>
<item name="android:datePickerDialogTheme">@style/AppCompatDialogStyle</item>
</style>
<style name="NoBaseline" parent="android:style/Widget.EditText">
<item name="android:background">#D3D3D3</item>
</style>
<style name="AppCompatDialogStyle"
parent="Theme.AppCompat.Light.Dialog">
<item name="colorAccent">#FF4081</item>
</style>
<style name="Splash" parent ="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowDisablePreview">true</item>
</style>
<style name="MyTheme.Splash"
parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowBackground">@drawable/splash_screen</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
</style>
</resources>
如果您在研究时没有看到这个,here is a solution 由 dkudelko 发布到 Github 如果您只是想删除下划线,这可能会更简单一些。
为此,只需在 Android 项目中创建一个 class 名为 NoUnderlineEntry 的项目,然后添加此代码。
using <YourApp>.Droid;
using Xamarin.Forms;
using Xamarin.Forms.Platform.Android;
[assembly: ExportRenderer(typeof(Entry), typeof(NoUnderlineEntry))]
namespace <YourApp>.Droid
{
public class NoUnderlineEntry : EntryRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
{
base.OnElementChanged(e);
Control?.SetBackgroundColor(Android.Graphics.Color.Transparent);
}
}
}
替换为您的应用程序名称后,您将创建一个自定义渲染器,该渲染器覆盖 Android 上的默认 Entry
以将控件背景颜色设置为透明。
Here is documentation 用于为 Entry
.
创建自定义渲染器
**注意:我没有亲自测试过,但是很多人评论说它有效。
首先,我是 Xamarin Forms 的新手,请多关照。我需要摆脱在 Android 中为输入输入显示的底线。它在 iOS 中显示良好。我做了一些研究,发现这个:
<style name="NoBaseline" parent="android:style/Widget.EditText">
<item name="android:background">#D3D3D3</item>
</style>
应该通过简单地使下划线与输入框的背景颜色相同来达到目的。我已将此代码放在我的 styles.xml 文件中,但我觉得我需要 应用 这种样式 某处 ,但我'我只是不确定在哪里。非常感谢对新手的任何帮助。
这是整个文件:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<style name="MyTheme" parent="MyTheme.Base">
</style>
<style name="MyTheme.Base"
parent="Theme.AppCompat.Light.DarkActionBar">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="colorPrimary">#2196F3</item>
<item name="colorPrimaryDark">#1976D2</item>
<item name="colorAccent">#FF4081</item>
<item name="windowActionModeOverlay">true</item>
<item name="android:datePickerDialogTheme">@style/AppCompatDialogStyle</item>
</style>
<style name="NoBaseline" parent="android:style/Widget.EditText">
<item name="android:background">#D3D3D3</item>
</style>
<style name="AppCompatDialogStyle"
parent="Theme.AppCompat.Light.Dialog">
<item name="colorAccent">#FF4081</item>
</style>
<style name="Splash" parent ="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowDisablePreview">true</item>
</style>
<style name="MyTheme.Splash"
parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowBackground">@drawable/splash_screen</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
</style>
</resources>
如果您在研究时没有看到这个,here is a solution 由 dkudelko 发布到 Github 如果您只是想删除下划线,这可能会更简单一些。
为此,只需在 Android 项目中创建一个 class 名为 NoUnderlineEntry 的项目,然后添加此代码。
using <YourApp>.Droid;
using Xamarin.Forms;
using Xamarin.Forms.Platform.Android;
[assembly: ExportRenderer(typeof(Entry), typeof(NoUnderlineEntry))]
namespace <YourApp>.Droid
{
public class NoUnderlineEntry : EntryRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
{
base.OnElementChanged(e);
Control?.SetBackgroundColor(Android.Graphics.Color.Transparent);
}
}
}
替换为您的应用程序名称后,您将创建一个自定义渲染器,该渲染器覆盖 Android 上的默认 Entry
以将控件背景颜色设置为透明。
Here is documentation 用于为 Entry
.
**注意:我没有亲自测试过,但是很多人评论说它有效。