android - SoftInput.AdjustResize 导致键盘在显示或隐藏时闪烁
问题描述
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>
而不仅仅是将 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
}
}
}
不仅仅是使用新的 LoginActivity
[Activity(Label = "LoginActivity")]
public class LoginActivity : AppCompatActivity
{
}
推荐阅读
- twitter-bootstrap - Bootstrap Vue - 使用类和混合的不同断点
- sql - 根据另一个表中的度量在表中创建新行
- javascript - React Native Android App 部署时间太长了 2 小时
- windows - 特定环境下磁带机 IO 调用失败
- postgresql - 将 TEIID 与 postgres 一起使用时将 UUID 隐式转换为字符变化
- asp.net - OpenID 重定向 URI 添加 # 符号
- css - 导航栏项目之间的引导响应空间
- python-3.x - Python搜索相应的字符串值
- sql-server - 对 Golang 中长时间运行的 MSSQL 事务的错误连接响应
- modelica - 如何在 OpenModelica 中将变量显示为连续函数?