SoftInput.AdjustResize заставляет клавиатуру светиться sh при отображении или скрытии - PullRequest
4 голосов
/ 20 февраля 2020

У нас возникла проблема в Android после установки WindowSoftInputMode в Android.Views.SoftInput.AdjustResize. Когда клавиатура показывает или скрывает, наш экран spla sh мигает прямо над тем местом, где анимация клавиатуры. Это довольно раздражает и раздражает.

Вот его клип, вы можете видеть, что spla sh заглядывает позади.

1 Ответ

1 голос
/ 20 февраля 2020

Из того, что я вижу, может быть проблема. Если вы установите SplashScreen в Styles. xml что-то вроде этого:

<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, заставка никогда не удаляется, и она будет действовать через все ваше приложение. Представьте, что на экране spla sh увеличилось изображение и перетащите его через все приложение, через некоторое время это вызовет утечку памяти.


Как это исправить. Создайте что-то вроде промежуточного программного обеспечения, которое будет таким же, как экран spla sh, примерно так

[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

        }
    }
}

Чем просто использовать fre sh LoginActivity

[Activity(Label = "LoginActivity")]
    public class LoginActivity : AppCompatActivity
    {
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...