Jam*_*Esh 5 android xamarin.android android-activity xamarin xamarin.forms
设置WindowSoftInputMode为后,我们在 Android 中遇到了问题Android.Views.SoftInput.AdjustResize。当键盘显示或隐藏时,我们的启动画面会在键盘动画的正上方闪烁。这是非常烦人和刺耳的。
这是它的一个剪辑,你可以看到飞溅在后面偷看。

据我所知,这可能是问题所在。如果您在 Styles.xml 中设置 SplashScreen,如下所示:
<style name="MainTheme.Splash" parent ="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowBackground">@drawable/splashscreen</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)
不仅仅是将 LoginActivity(登录屏幕)设置为 MainLaucher,闪屏永远不会被释放,它将贯穿您的整个应用程序。想象一下,在启动屏幕上有更大的图像并将其拖动到整个应用程序中,一段时间后会导致内存泄漏。
如何修复它。创建类似中间件活动的东西,它与启动屏幕相同,如下所示
[Activity(Theme = "@style/MainTheme.Splash", MainLauncher = true, NoHistory = true, Icon = "@drawable/appicon")]
public class SplashActivity : AppCompatActivity
{
public override void OnCreate(Bundle savedInstanceState, PersistableBundle persistentState)
{
base.OnCreate(savedInstanceState, persistentState);
}
// Launches the startup task
protected override void OnResume()
{
base.OnResume();
Task startupWork = new Task(() => { SimulateStartup(); });
startupWork.Start();
}
// Simulates background work that happens behind the splash screen
async void SimulateStartup()
{
await Task.Delay(500); // Simulate a bit of startup work. You can remove this
StartActivity(typeof(LoginActivity)); // Your Activity
}
}
}
Run Code Online (Sandbox Code Playgroud)
不仅仅是使用新的 LoginActivity
[Activity(Label = "LoginActivity")]
public class LoginActivity : AppCompatActivity
{
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
254 次 |
| 最近记录: |