Sonntag, 24. November 2013

Android: ScrollBars einfügen

Angenommen, wir möchten folgendes Layout erzeugen:

using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;

namespace ScrollbarsExample
{
     [Activity (Label = "ScrollbarsExample", MainLauncher = true)]
     public class MainActivity : Activity
     {
          protected override void OnCreate (Bundle bundle)
          {
               base.OnCreate (bundle);

               var Layout = new LinearLayout (this);
               Layout.Orientation = Orientation.Vertical;

               for (int i=0; i<20; i++) {
                    var TempButton = new Button (this);
                    TempButton.Text = "Button" + i.ToString ();
                    Layout.AddView (TempButton);
               }

               SetContentView (Layout);
          }
     }
}

Also ein Layout, in dem wir 20 Buttons untereinander platzieren. Wahrscheinlich passt dieses nicht komplett auf den Handybildschirm, die App wird dann einfach "abgeschnitten".
Wir können der App aber ganz leicht eine Scrollfunktion hinzufügen, das heißt eine Möglichkeit, dass der Benutzer nach oben oder unten scrollen kann und so das komplette Layout sieht.
Hierfür legen wir quasi als äußerste Instanz ein ScrollView an. Dann fügen wir unser Layout mittels AddView() dem ScrollView hinzu, und setzen das Layout der Applikation auf das ScrollView:


using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;

namespace ScrollbarsExample
{
     [Activity (Label = "ScrollbarsExample", MainLauncher = true)]
     public class MainActivity : Activity
     {
          protected override void OnCreate (Bundle bundle)
          {
               base.OnCreate (bundle);

               var MyScrollView = new ScrollView (this);

               var Layout = new LinearLayout (this);
               Layout.Orientation = Orientation.Vertical;

               for (int i=0; i < 20; i++) {
                    var TempButton = new Button (this);
                    TempButton.Text = "Button" + i.ToString ();
                    Layout.AddView (TempButton);
               }

               MyScrollView.AddView (Layout);
               SetContentView (MyScrollView);
          }
     }
}

Nun kann der Benutzer per Fingerbewegung vertikal durch die Applikation steuern.
Ist das Layout horizontal breiter als der Bildschirm, erreichen wir eine horizontale Scrollmöglichkeit durch Verwendung des Steuerelements HorizontalScrollView.

Keine Kommentare:

Kommentar veröffentlichen