Quantcast
Channel: Xamarin.Forms — Xamarin Community Forums
Viewing all articles
Browse latest Browse all 58056

xamarin.forms scrollview on entry focus, keyboard appears and buttons also scroll

$
0
0

Hi i have a weird problem.

I defined few labels and textbox for data entry purpose using xamarin.forms. I wrapped them into scroll view so that when keyboard appears, they should scroll.

It is working fine. The control which has focus scroll to top and the keyboard appears when it get focus. but i also have couple of buttons at the bottom of my form. Now, the problem is, whenever keyboard appears, my bottom buttons are also scrolled. which looks weird. As button are for submit or cancel, it should be stay there in bottom.

following is my code:

        firstNameLabel.Text = "First Name";

        var firstName = new Entry() { HorizontalOptions = LayoutOptions.FillAndExpand };
        firstName.SetBinding (Entry.TextProperty,MyViewModel.FirstNamePropertyName);

        var lastNameLabel = new Label { HorizontalOptions = LayoutOptions.Fill};
        lastNameLabel.Text = "Last Name";
        var lastName = new Entry() { HorizontalOptions = LayoutOptions.FillAndExpand };
        lastName.SetBinding (Entry.TextProperty, MyViewModel.LastNamePropertyName);
                    // other fields

                   Button btnSubmit  = new Button
        {
            HorizontalOptions = LayoutOptions.Fill,
            BackgroundColor = Color.FromHex("#22498a"),
            TextColor = Color.White,
            Text = "Submit"
        };

                   var cancelButton = new Button { Text = Cancel", BackgroundColor = Color.FromHex("0d9c00"), TextColor = Color.White };
        cancelButton .Clicked +=  (object sender, EventArgs e) =>{ };

                   var cotrolStakeLayout = new StackLayout () {
            Padding = new Thickness(Device.OnPlatform(5, 5, 5),0 , Device.OnPlatform(5, 5, 5), 0), //new Thickness(5,0,5,0),
            VerticalOptions = LayoutOptions.FillAndExpand, 
            HorizontalOptions = LayoutOptions.Fill,
            Orientation = StackOrientation.Vertical,
            Children = { firstNameLabel, firstName, lastNameLabel, lastName, otherfields}
        };

                    var scrollableContentLayout = new ScrollView (){ 
            Content = cotrolStakeLayout,
             Orientation = ScrollOrientation.Vertical,
             HorizontalOptions = LayoutOptions.Fill,
             VerticalOptions = LayoutOptions.Fill
        };


                    var buttonLayout = new StackLayout (){ 
            Padding = new Thickness(Device.OnPlatform(5, 5, 5),0 , Device.OnPlatform(5, 5, 5), 0), //new Thickness(5,0,5,0),
            HorizontalOptions = LayoutOptions.Fill,
            VerticalOptions = LayoutOptions.Fill, 
            Orientation = StackOrientation.Vertical,
            Children= { btnSubmit , cancelButton }
        };


                    var nameLayout = new StackLayout()
        {
            HorizontalOptions = LayoutOptions.Fill,
            VerticalOptions = LayoutOptions.Fill, 
            Orientation = StackOrientation.Vertical,
            Children = {scrollableContentLayout,buttonLayout}
        };

                  Content = nameLayout;

Viewing all articles
Browse latest Browse all 58056

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>