• Home
  • Introduction
  • Installation
  • Portfolio
  • Tutorial
    • Flutter
    • Dart
    • Android
    • Java
    • J2EE
    • Kotlin
    • Jetpack Compose
    • Interview Questions
  • Contact Us
Search
Flutter Tutorial
  • Home
  • Introduction
  • Installation
  • Portfolio
  • Tutorial
    • Flutter
    • Dart
    • Android
    • Java
    • J2EE
    • Kotlin
    • Jetpack Compose
    • Interview Questions
  • Contact Us
Home Flutter User Profile Design In Flutter
  • Flutter
  • Tutorial

User Profile Design In Flutter

February 8, 2020
WhatsApp
Facebook
Google+
Pinterest
Telegram
Twitter
ReddIt
Email
Print
Tumblr
StumbleUpon
VK
Digg
LINE
Viber

    User Profile Design In Flutter :

    User Profile Design In Flutter : To create user profile design in flutter first create new flutter project, Name it user profile design in flutter.

    • First open android studio.
    • Create new flutter project.
    • Now import the material.dart file.

    You can create rounded shape user profile design in flutter.

    Below the profile the name of the user and other things are appear. With the help of container class you can set the height width. For the particular widget .

    The flutter tutorial of user profile design with the image is given below. For more information study the below tutorial.

    User Profile Design Image :

    User Profile Design In Flutter
    • User Profile Design In Flutter :
      • User Profile Design Image :

    User_profile_row.dart

    import 'package:flutter/material.dart';
    import 'package:flutter_redux/flutter_redux.dart';
    import 'package:flutter_weighter/model/user.dart';
    import 'package:flutter_weighter/redux/app_state.dart';
    import 'package:flutter_weighter/screens/home/bloc/bloc_provider.dart';
    import 'package:flutter_weighter/utility/translation/app_translations.dart';
    import 'package:flutter_weighter/widget/circular_image_card.dart';
    import 'package:redux/redux.dart';
    
    class UserProfileRow extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return StreamBuilder<double>(
            stream: HomeBlocProvider.of(context).mainPagerStream,
            builder: (context, snapshot) {
              double scroll = snapshot.hasData ? snapshot.data : 0;
    
              return Container(
                height: MediaQuery.of(context).size.height * (0.25 + (scroll) * 0.1),
                child: Stack(
                  children: <Widget>[
                    ClipPath(
                      clipper: ClippingClass(),
                      child: Container(
                        height: MediaQuery.of(context).size.height * (0.125 + (scroll) * 0.05),
                        decoration: BoxDecoration(color: Theme.of(context).primaryColor),
                      ),
                    ),
                    Positioned.fill(
                      child: Align(
                        alignment: Alignment.center,
                        child: Container(
                          height: MediaQuery.of(context).size.height * (0.1 + (scroll) * 0.05),
                          width: MediaQuery.of(context).size.height * (0.1 + (scroll) * 0.05),
                          child: InkWell(
                            onTap: () {
                              HomeBlocProvider.of(context).pageNavigationSink.add(1);
                            },
                            child: CircularImageCard(
                              scale: scroll,
                              image: 'assets/images/icon.png',
                            ),
                          ),
                        ),
                      ),
                    ),
                    Positioned.fill(
                      child: Align(
                        alignment: Alignment.bottomCenter,
                        child: _buildProfileUserName(context, scroll),
                      ),
                    ),
                  ],
                ),
              );
            });
      }
    
      _buildProfileUserName(BuildContext context, double scale) {
        return Wrap(
              direction: Axis.vertical,
              crossAxisAlignment: WrapCrossAlignment.center,
              children: <Widget>[
                UserNameWidget('Title', scale),
                LastUpdatedTextWidget('Sub Title', scale),
              ],
        );
      }
    }
    
    class UserNameWidget extends StatelessWidget {
      final String label;
      final double scale;
    
      UserNameWidget(this.label, this.scale);
    
      @override
      Widget build(BuildContext context) {
        return Text(
          label,
          style: TextStyle(
              color: Colors.black,
              fontSize: MediaQuery.of(context).size.shortestSide * (0.06 + (scale) * 0.01),
              fontWeight: FontWeight.w500),
          maxLines: 1,
          overflow: TextOverflow.ellipsis,
          softWrap: true,
        );
      }
    }
    
    class LastUpdatedTextWidget extends StatelessWidget {
      final String label;
      final double scale;
    
      LastUpdatedTextWidget(this.label, this.scale);
    
      @override
      Widget build(BuildContext context) {
        return Text(
          label,
          style: Theme.of(context).textTheme.display1.copyWith(
              color: Colors.black,
              fontSize: MediaQuery.of(context).size.shortestSide * (0.03 + (scale) * 0.005),
              fontWeight: FontWeight.w300),
          maxLines: 1,
          overflow: TextOverflow.ellipsis,
          softWrap: true,
        );
      }
    }
    
    class ClippingClass extends CustomClipper<Path> {
      @override
      Path getClip(Size size) {
        var path = Path();
        path.lineTo(0.0, size.height * 0.75);
        path.quadraticBezierTo(
          size.width / 4,
          size.height,
          size.width / 2,
          size.height,
        );
        path.quadraticBezierTo(
          size.width - (size.width / 4),
          size.height,
          size.width,
          size.height * 0.75,
        );
        path.lineTo(size.width, 0.0);
        path.close();
        return path;
      }
    
      @override
      bool shouldReclip(CustomClipper<Path> oldClipper) => false;
    }
    

    The flutter tutorial  is a website that bring you the latest and amazing resources of code. All the languages codes are included in this website. The languages like flutter, android, java,kotlin etc.with the help of this languages any user can develop the beautiful application

    For more information about Flutter. visit www.fluttertutorial.in

    WhatsApp
    Facebook
    Google+
    Pinterest
    Telegram
    Twitter
    ReddIt
    Email
    Print
    Tumblr
    StumbleUpon
    VK
    Digg
    LINE
    Viber
      Previous articleMenu Button In Flutter
      Next articleWhite Dry Wash Laundry Booking Android + iOS App Template
      admin

      RELATED ARTICLESMORE FROM AUTHOR

      How to Create Flutter Plugin

      How to Create Flutter Plugin 2021

      Flutter Json Dynamic Key Using model class

      Flutter Event bus utils

      Search

      Subscribe to get letest updates

      Loading
      ABOUT US
      www.fluttertutorial.in is the website that bring you the latest and amazing resources of code. All the languages codes are included in this website. The languages like flutter, android, java,kotlin Etc...with the help of this languages that help you to develop the beautiful mobile application.
      • Privacy Policy
      • Contact Us
      • About Us
      © Copyright 2022- www.fluttertutorial.in
      MORE STORIES

      Customer Service UI

      April 13, 2022
      Dart Interview Questions

      Dart Interview Questions

      April 13, 2022
      How to Create Flutter Plugin

      How to Create Flutter Plugin 2021

      December 30, 2021
      Edit with Live CSS
      Save
      Write CSS OR LESS and hit save. CTRL + SPACE for auto-complete.