سرمایه گذاری متفاوت در سال نو 🍎🌱 ۳۵٪ تخفیف نوروزی ➕ حضور رایگان در مسترمایند نخبگان صنعت نرم‌افزار 💻✅
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ علی نژادجواد
pageview مطابق curve جابه جا نمی‌شود
علی نژادجواد حل شده توسط علی نژادجواد
import 'package:blogclub/data.dart';
import 'package:blogclub/gen/assets.gen.dart';
import 'package:blogclub/home.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:smooth_page_indicator/smooth_page_indicator.dart';
class OnBoardingScreen extends StatefulWidget {
  const OnBoardingScreen({super.key});
  @override
  State<OnBoardingScreen> createState() => _OnBoardingScreenState();
}
class _OnBoardingScreenState extends State<OnBoardingScreen> {
  final PageController _pageController = PageController();
  final onBoardData = AppDatabase.onboards;
  int _currentPage = 0;
    @override
  void initState() {
      super.initState();
      _pageController.addListener(() {
        if (_currentPage != _pageController.page!.round()) {
          setState(() {
            _currentPage = _pageController.page!.round();
            debugPrint("onboarding page $_currentPage");
          });
        }
      }
      );}
  @override
  Widget build(BuildContext context) {
    final themeData = Theme.of(context);
    return Scaffold(
      body: Column(
        children: [
          Expanded(
            child: Padding(
              padding: const EdgeInsets.fromLTRB(32, 32, 32, 0),
              child: Assets.img.background.onboarding.image(),
            ),
          ),
          Container(
            height: 324,
            decoration: BoxDecoration(
              color: Colors.white,
              boxShadow: [BoxShadow(color: Colors.black26, blurRadius: 40)],
              borderRadius: BorderRadius.only(
                topLeft: Radius.circular(32),
                topRight: Radius.circular(32),
              ),
            ),
            child: Column(
              children: [
                Expanded(
                  child: PageView.builder(
                    controller: _pageController,
                    itemCount: 4,
                    itemBuilder: (context, index) {
                      final onboard = onBoardData[index];
                      return Padding(
                        padding: const EdgeInsets.fromLTRB(32, 32, 32, 16),
                        child: Column(
                          crossAxisAlignment: CrossAxisAlignment.start,
                          children: [
                            Text(onboard.title,style: themeData.textTheme.titleMedium),
                            Text(onboard.caption,style:themeData.textTheme.bodyMedium,),
                          ],
                        ),
                      );
                    },
                  ),
                ),
                Padding(
                  padding: const EdgeInsets.fromLTRB(32, 8, 32, 8),
                  child: Row(
                    mainAxisAlignment: MainAxisAlignment.spaceBetween,
                    children: [
                      SmoothPageIndicator(
                        controller: _pageController,
                        count: 4,
                        effect: ExpandingDotsEffect(dotHeight: 8, dotWidth: 8),
                      ),
                      ElevatedButton(
                        child: _currentPage == onBoardData.length -1?Icon(CupertinoIcons.check_mark) :Icon(CupertinoIcons.arrow_right),
                        onPressed: () {
                          if (_currentPage != onBoardData.length-1){
                            _pageController.animateToPage(_currentPage+1, duration: Duration(microseconds: 500), curve: Curves.decelerate);
                          }else{
                            Navigator.of(context).pushReplacement(CupertinoPageRoute(builder: (context){return MyHomePage();}),);}})
    ]),
                ),
                SizedBox(height: 32),
              ],
            ),
          ),
        ],
      ),
    );
  }
}

قسمت onboard به طور کامل اجرا کردم مطابق کد استاد ولی pageveiw به صورتی اسلایدی جابه جا نمی‌شود

به نظر می‌رسد مشکل اصلی به عدم یافتن نسخه‌ی Gradle 8.0.0 مربوط باشد. برای حل این مشکل مراحل زیر را دنبال کنید:

1. بررسی نسخه‌ی Gradle
ممکن است پروژه‌ی شما به نسخه‌ای از Gradle نیاز داشته باشد که در دسترس نیست. برای بررسی این موضوع، فایل android/build.gradle را باز کنید و مقدار زیر را چک کنید:

🔹 در فایل android/build.gradle
به این بخش دقت کنید:

dependencies {
       classpath 'com.android.tools.build:gradle:8.0.0' // بررسی این مقدار
}

اگر مقدار 8.0.0 نوشته شده، ممکن است نیاز باشد آن را به نسخه‌ی جدیدتری (مثلاً 8.3.0) تغییر دهید.
2. بررسی نسخه‌ی Gradle Wrapper
🔹 به مسیر android/gradle/wrapper/gradle-wrapper.properties بروید و مقدار زیر را بررسی کنید:

distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip

اگر مقدار gradle-8.0-bin.zip نوشته شده، سعی کنید آن را به نسخه‌ی جدیدتر، مانند gradle-8.3-bin.zip تغییر دهید.
3. سینک کردن پروژه
بعد از اعمال تغییرات، در ترمینال پروژه‌ی خود این دستورات را اجرا کنید:

flutter clean
flutter pub get

سپس پروژه را دوباره اجرا کنید.

یلدا محصلی ۲۹ اسفند ۱۴۰۳، ۱۴:۵۷

پس به چه صورت جابجا میشه؟

یلدا محصلی ۲۹ اسفند ۱۴۰۳، ۲۰:۵۱

نسخه گردل ۸.۱۰.۲ است

ولی مشکل به صورت دیگری که مربوط به نوع کرو بود حل شد 
ممنونم

 

بهترین پاسخ
علی نژادجواد ۰۵ فروردین ۱۴۰۴، ۱۲:۵۹