Flutter 스크롤, 중간에 전체 그림, 앞뒤로 부분 그림 보이기
어서 오세요.com/flutter-mid…
효과
코드
코드가 비교적 간단하다. 이것도 flutter가 강한 곳이다.
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: DisplayPage(),
);
}
}
class DisplayPage extends StatefulWidget {
@override
_DisplayPageState createState() => new _DisplayPageState();
}
class _DisplayPageState extends State<DisplayPage> {
static bool _isAddGradient = false;
final List descriptions = [
'tryenough.com',
'tryenough.com',
'tryenough.com',
];
var decorationBox = DecoratedBox(
decoration: _isAddGradient
? BoxDecoration(
gradient: LinearGradient(
begin: FractionalOffset.bottomRight,
end: FractionalOffset.topLeft,
colors: [
Color(0x00000000).withOpacity(0.9),
Color(0xff000000).withOpacity(0.01),
],
),
)
: BoxDecoration(),
);
@override
Widget build(BuildContext context) {
PageController controller = PageController(viewportFraction: 0.8);
controller.addListener((){
});
return Scaffold(
backgroundColor: Colors.black,
body: Center(
child: SizedBox.fromSize(
size: Size.fromHeight(550.0),
child: PageView.builder(
controller: controller,
itemCount: 3,
itemBuilder: (BuildContext context, int index) {
return Padding(
padding: EdgeInsets.symmetric(
vertical: 16.0,
horizontal: 8.0,
),
child: GestureDetector(
onTap: () {
Scaffold.of(context).showSnackBar(SnackBar(
backgroundColor: Colors.deepOrangeAccent,
duration: Duration(milliseconds: 800),
content: Center(
child: Text(
descriptions[index],
style: TextStyle(fontSize: 25.0),
),
),
));
},
child: Material(
elevation: 5.0,
borderRadius: BorderRadius.circular(8.0),
child: Stack(
fit: StackFit.expand,
children: [
FlutterLogo(style: FlutterLogoStyle.stacked, colors: Colors.red),
decorationBox,
],
),
),
),
);
},
),
),
),
);
}
}
핵심은 페이지뷰의 controller에 있는viewportFraction 속성입니다.효과를 수정해 보세요. ^ ^
전재 대상:https://juejin.im/post/5cc15a366fb9a03228616d14
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.