András Tóth‘s professional blog
banditoth.net

Hey there 👋, I’m banditoth a .NET MAUI developer from Hungary.
I write about software development with .NET technologies.

You can find me on:
LinkedIn | Github | StackOverflow | X / Twitter | Threads

Tag: xamarin android

  • Xamarin Android: TextView / Entry padding eltávolítása

    This content has 5 years. Some of the information in this post may be out of date or no longer work. Please, read this page keeping its age in your mind.

    Ha az iOS Entry láthatólag nem tartalmaz margót vagy paddingot, de Androidon máshogy renderelődik ki, akkor gyanakodhatunk arra, hogy valahol nem állítottunk a Xamarin.Forms kódban margót/paddingot nullára. Azonban a Forms Paddingjával és Marginjával nem állítható az androidos TextView paddingja, ehhez customrenderer-re lesz szükség.

    [assembly: ExportRenderer(typeof(CustomEntry), typeof(CustomEntry Renderer))]
    namespace banditoth.Droid.Renderers
    {
        public class CustomEntryRenderer : EntryRenderer
        {
            protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
            {
                base.OnElementChanged(e);
    
                if (Control != null)
                {
                    // Eltávolítjuk a paddingot.
                    Control.SetPadding(0, 0, 0, 0);
                }
            }
        }
    }
    

    A Control.SetPaddinggal Custom értékeket állíthatunk be a natív TextView paddingjának. Nekem most az eltávolításra volt szükségem, ezért kinulláztam.

  • Xamarin Android: SplashScreenActivity és PushNotification megnyitás, kilőtt alkalmazásnál

    This content has 5 years. Some of the information in this post may be out of date or no longer work. Please, read this page keeping its age in your mind.

    Alapvetően, ha az alkalmazásunkat PushNotificationból indítja el az Android, és van SplashScreenActivitynk, akkor a MainActivityben nem fogjuk az Extras tömbben megkapni a PushNotification adatait, és nem fogunk tudni reagálni rá.

    Mivel a SplashScreenActivity-nk a MainLauncher, ezért ennek az Activitynek az Intent.Extra-jai közé kerülnek be a Pushnotif extrák.

    Fontos megjegyezni, hogy az onNewIntent nem fog megfutni terminált alkalmazásnál.

    A MainActivity-n az ActivityAttributeban a következőket kell beállítani:

    Exported = true, LaunchMode = LaunchMode.SingleTop
    

    A MainActivityben meg kell hívni az onCreate metódusban a következő metódust a LoadApplication hívás után, ha Xamarin esetén a CrossGeeks FirebasePushNotificationPluginját használjuk:

    FirebasePushNotificationManager.ProcessIntent(this, Intent);
    

    A SplashScreenActivity ActivityAttributejánál a következőket kell beállítani:

    MainLauncher = true, NoHistory = true
    

    A SplashScreenActivity onResume metódusát pedig úgy kell Overrideolni, hogy a MainActivity StartActivityje előtt, kitöltjük az Intent extráit, mintha az Android oprendszer töltötte volna ki a MainActivity számára:

    var mainIntent = new Intent(Application.Context, typeof(MainActivity));
    
     if (Intent.Extras != null) {
         mainIntent.PutExtras(Intent.Extras);
     }
     mainIntent.SetFlags(ActivityFlags.SingleTop);
     StartActivity(mainIntent);