기사 디렉토리
패키지 관리
더 또는 덜 완전한 응용 프로그램 패키지는 바퀴를 만들 반복하지 않도록하기 때문에, 일부 타사 개발자를 사용하여, 자바와 같은 Xutils는 안드로이드 도입 글라이드와 버터 나이프를 개발. 그 중, 우리 패킷의 관리의 모든 노하우 안드로이드 Gradle을하고, IOS 패킷 Cocoapods로 관리. (메뉴 실현 렌더링 슬라이딩)
플러터에서를, 당신의 자신의 이미지를 도입 할 때와 같은 이전 블로거의 이미지 구성 요소를 설명, pubspec.yaml 패키지 구성 파일에 의해 관리, 우리는 내부를 선언해야합니다.
위와 같이, 우리가 dev_dependencies에 필요한 의존성과 종속성을 추가 할 수 있습니다, 이러한 패키지 업로드 할 공식 또는 타사 개발자입니다. 우리는 팩을 다운로드, 프로젝트의 루트 디렉토리에 "떨림 패키지를 얻을"명령을 입력 버전 번호를 입력 공식 웹 사이트 (https://pub.dartlang.org/)에 타사 패키지 떨림 펍의 수를 검색 할 수 있습니다 그것은 사용, 또는 동기화에 필요한 IDE 종속성에서 할 수있다.
마찬가지로, 우리는 또한 술집 호스팅에 자신의 개발 플러그인을 업로드 할 수 있습니다. 다음 표에 CI pubspec.yaml 프로파일 파라미터 :
매개 변수 | 값 |
---|---|
이름 | 그것은 여기에 패키지 이름과 수입 세트에있는 항목의 값과 일치하는 응용 프로그램이나 패키지의 이름을 나타냅니다 |
기술 | 응용 프로그램 또는 패킷 설명 정보 |
버전 | 응용 프로그램 패키지 또는 현재의 버전 번호 |
종속 | 응용 프로그램 또는 패키지에 의존 플러그인 또는 제 3 자 패키지 |
dev_dependencies | 종속 개발 환경 패키지 |
실룩 거리다 | 같은 글꼴 및 자산으로하는 일부 구성 항목, |
효과를 달성 슬라이딩
어떻게 그렇게 많이 필요한 것을 연습을 배울 수 있기 때문에, 설명을 여기에 모두를 완료하기 위해 개별 구성 요소의 섹션을 사용하기 위해서는 이전 섹션에서 배운 모든 지식을 통합, 여기에 작은 효과를 슬라이딩 메뉴를 구현합니다.
첫째, 안드로이드 앱 슬라이딩 메뉴는 그 특성이 분석, 오른쪽, 왼쪽 슬라이드 메뉴 표시 영역의 우측이 있어야? 상기 슬라이딩 메뉴 배경 그림, 사진 및 사진 단추의 왼쪽.
그래서 여기에 우리가 right_page.dart 페이지입니다 디스플레이의 오른쪽을 달성하기 위해 가장 먼저, 코드는 다음입니다 :
import 'package:flutter/material.dart';
class RightPage extends StatelessWidget {
final String pageText;//确定右侧的文字
RightPage(this.pageText);//构造函数传入设置页面的文字
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: AppBar(
title: new Text(pageText),//该页面标题栏与文字相同
),
body: Center(
child: new Text(pageText),//该页面标题栏与文字相同
),
);
}
}
오른쪽은 중요하지 않습니다, 우리는 텍스트 때 들어오는 페이지를 구성하여, 어떤 단어를 결정하기 위해 페이지로 이동할지 여부를 결정합니다. 다음에 다음 코드가 매우 중요하며 대문 left_page.dart 왼쪽 슬라이드 :
import 'package:flutter/material.dart';
import 'package:flutter_app/page/right_page.dart';
class LeftPage extends StatefulWidget{
@override
_LeftPageState createState() => new _LeftPageState();
}
class _LeftPageState extends State<LeftPage> {
//头像与设置按钮图片
String headImageUrl="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1580303478532&di=1478f90ea84d8431546853ee4b9b02d6&imgtype=0&src=http%3A%2F%2Fb-ssl.duitang.com%2Fuploads%2Fitem%2F201511%2F04%2F20151104140542_tBusS.jpeg";
String profileImageUrl="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1580303491035&di=1abfac6069e86a510b8deec36e4be614&imgtype=0&src=http%3A%2F%2Fb-ssl.duitang.com%2Fuploads%2Fitem%2F201607%2F26%2F20160726185736_yPmrE.thumb.224_0.jpeg";
//交换头像与设置图片的方法
void exchangeImage() {
String backupString = headImageUrl;
this.setState((){
headImageUrl = profileImageUrl;
profileImageUrl = backupString;
});
}
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: AppBar(
title: new Text("侧滑效果"),
),
drawer: new Drawer(
child: new ListView(
children: <Widget>[
new UserAccountsDrawerHeader(//左侧菜单上面的显示区域
accountName: new Text("liyuanjinglyj"),//姓名或者昵称
accountEmail: new Text("[email protected]"),//邮箱地址
currentAccountPicture: new GestureDetector(//大头像点击事件
onTap: ()=>print("点击事件"),
child: new CircleAvatar(
backgroundImage: new NetworkImage(this.headImageUrl),
),
),
otherAccountsPictures: <Widget>[//设置图像的点击事件
new GestureDetector(
onTap: ()=>this.exchangeImage(),//点击交换图片
child: new CircleAvatar(
backgroundImage: new NetworkImage(this.profileImageUrl),
),
)
],
decoration: new BoxDecoration(//左侧菜单上面的显示区域背景,设置图片以及填充方式
image: new DecorationImage(image: new NetworkImage("https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=3138597732,1722388446&fm=26&gp=0.jpg"),fit: BoxFit.fill)
),
),
new ListTile(//一个固定高度的行,通常包含一些文本,以及一个行前或行尾图标。
title: new Text("第一个菜单"),
trailing: new Icon(Icons.accessibility),
onTap: (){
Navigator.of(context).pop();//出栈
Navigator.of(context).push(//进栈
new MaterialPageRoute(
builder: (BuildContext context)=>new RightPage("第一个菜单"),
));
},
),
new ListTile(
title: new Text("第二个菜单"),
trailing: new Icon(Icons.search),
onTap: (){
Navigator.of(context).pop();//出栈
Navigator.of(context).push(//进栈
new MaterialPageRoute(
builder: (BuildContext context)=>new RightPage("第二个菜单页面")
));
},
),
new Divider(),//分割线
new ListTile(
title: new Text("第三个菜单"),
trailing: new Icon(Icons.playlist_add_check),
onTap: ()=>Navigator.of(context).pop(),
)
],
),
),
body: new Center(
child: new Text("主页面",style: new TextStyle(fontSize: 35.0),),
),
);
}
}
메모리 페이지 경로의 스택의 방법으로, 여기 떨림을 충분히 세부 사항, 또는 메모를 주석으로 처리합니다. 따라서, 기존의 작업 푸시 (밀어)과 팝 (POP)은 마지막으로 우리 main.dart 코드, 필수, 다른 코드가 잘 이해 될 각 모양에 메모를 가지고 있습니다 :
import 'package:flutter/material.dart';
import 'package:flutter_app/page/left_page.dart';
void main(){
runApp(
new MaterialApp(
home: LeftPage(),
),
);
}
로그인 인터페이스는 회전 목마의 효과를 얻을 : 같은 슬라이딩 효과 떨림 프로젝트는 효과는 연습 응용 프로그램 구성 요소를 설명하는 블로그 게시물에서 여전히 첫 번째지도 보웬 정확히 동일하게 달성, 완료됩니다.