.NET MAUI
一种 Microsoft 开源框架,用于构建跨移动设备、平板电脑、台式机的原生设备应用程序。
130 个问题
你好,
如果您想移除Shell tab点击时,出现的水波纹效果,你可以在 Platform/Android/ 文件夹下,创建一个自定义的Shellrenderer. 主要获取通过vgTab.SetBackgroundResource(Resource.Drawable.hideRipple);
获取每个tab, 设置我们自定义的background resouces.
using Android.Content;
using Android.Views;
using Google.Android.Material.BottomNavigation;
using Microsoft.Maui.Controls.Handlers.Compatibility;
using Microsoft.Maui.Controls.Platform.Compatibility;
namespace SplashScreenIssue.Platforms.Android
{
public class CustomShellRenderer : ShellRenderer
{
public CustomShellRenderer(Context context) : base(context)
{
}
protected override IShellBottomNavViewAppearanceTracker CreateBottomNavViewAppearanceTracker(ShellItem shellItem)
{
return new MyCreateBottomNavViewAppearanceTracker();
}
}
internal class MyCreateBottomNavViewAppearanceTracker : IShellBottomNavViewAppearanceTracker
{
public void Dispose()
{
}
public void ResetAppearance(BottomNavigationView bottomView)
{
}
public void SetAppearance(BottomNavigationView bottomView, IShellAppearanceElement appearance)
{
ViewGroup vg = (ViewGroup)bottomView.GetChildAt(0);
int tabsCount = vg.ChildCount;
for (int j = 0; j < tabsCount; j++)
{
ViewGroup vgTab = (ViewGroup)vg.GetChildAt(j);
vgTab.SetBackgroundResource(Resource.Drawable.hideRipple);
}
}
}
}
然后在Platform/Android/Resouces 文件夹下, 创建一个xml, 命名为hideRipple.xml, 注意hideRipple.xml的build action 是AndroidResouces. 以下是hideRipple.xml 中的代码。
<?xml version="1.0" encoding="utf-8" ?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<color android:startColor="@android:color/transparent"/>
</shape>
最后打开MauiProgram.cs, 去注册这个自定义的ShellRenderer.
builder .ConfigureMauiHandlers((handlers) =>
{
#if ANDROID
handlers.AddHandler(typeof(AppShell), typeof(yourporjectName.Platforms.Android.CustomShellRenderer));
#endif
});
如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。
注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。