Flutter Satır kaydırma Efekti animasyonu

Aug 26 2020

Mevcut projemde iyi çalışan kaydırılabilir bir satır var, ancak bir tür statik kaydırma yapmanın bir yolunu bulamıyorum, burada bir öğeye kaydırdığınızda öğe otomatik olarak ortalanıyor.

Şu anda sahip olduğum şey bu:

Kartlar kaydırıldığında, kaydırma bittiğinde konumunda kalırlar:

Elde etmek istediğim etki, bir sonraki karta geçerken kartın kendisini merkeze hizalaması.

Gerçekten böyle çalışan bir widget var mı?

Yanıtlar

1 meditat Aug 26 2020 at 14:35

Bunu dene,

import 'package:flutter/material.dart';

final Color darkBlue = Color.fromARGB(255, 18, 32, 47);

void main() {
 runApp(MyApp()); 
}

class MyApp extends StatelessWidget {

final List<String> images = ["Me", "You", "Foo", "Baa"];

final PageController controller = PageController(viewportFraction:0.8);

@override
Widget build(BuildContext context) {
return MaterialApp(
  theme: ThemeData.dark().copyWith(scaffoldBackgroundColor: darkBlue),
  debugShowCheckedModeBanner: false,
  home: Scaffold(
    body: PageView.builder(
      controller: controller,
      itemCount: images.length,
      itemBuilder: (context,index){
        return Container(
          margin: EdgeInsets.all(16),
          child: Center(child:Text(images[index])),
          color: Colors.grey.shade200
        );

      }
    ),
   ),
  );
 }
 }

class MyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
 return Text('Hello, World!', style: Theme.of(context).textTheme.headline4);
} 
}

JoséLuna Aug 26 2020 at 15:06

Çözüm basitti:

 Padding(
      padding: const EdgeInsets.symmetric(vertical: 80),
      child: Container(
        child: PageView(
          controller: controller,
          scrollDirection: Axis.horizontal,
          pageSnapping: true,
          physics: BouncingScrollPhysics(),
          children: [CardMovie(), CardMovie(), CardMovie()],
        ),
      ),
    )

PageView parçacığını kullanarak ve bir dolgu üst kısmı vererek, parçacığın yüksekliği tam ekran olduğundan.