홈>
플러터를 처음 접했고, 서랍 메뉴와 본문 목록이있는 홈페이지가 있습니다.
DRAWER MENU =>서랍 메뉴의 탭 항목 목록에서 PAGE 웹 URL을로드하고 있으며 BACK을 탭하면 내 홈페이지로 돌아갑니다. 아주 잘 작동합니다.
BODY LIST CONTENT =>탭 항목 목록에서 페이지 웹 URL을 잘로드하지만 내 홈페이지로 돌아가고 싶을 때 검은 화면이 나타납니다. (
Homepage.dart
class HomePage extends StatefulWidget{
@override
State<StatefulWidget> createState() {
// TODO: implement createState
return _HomePage();
}
}
class _HomePage extends State<HomePage>{
@override
Widget build(BuildContext context) {
// TODO: implement build
var globalContext = context;
return Scaffold(
appBar: AppBar(
title: Text(
'Benvenuto',
style: TextStyle(color: Colors.white)
),
backgroundColor: Color(0xFF4035b1),
),
drawer: Drawer(
child: new Column(
children: <Widget>[
new UserAccountsDrawerHeader(
accountName: Text('VIA ALBERTO POLIO 54'),
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [
Color(0xFF4268D3),
Color(0xFF584CD1)
],
begin: FractionalOffset(0.2, 0.0),
end: FractionalOffset(1.0, 0.6),
stops: [0.0, 0.6],
tileMode: TileMode.clamp
)
),
accountEmail: Text('ORARI: LUNEDI - VENERDI 9:30 / 19:30'),
currentAccountPicture: new CircleAvatar(
radius: 50.0,
backgroundColor: const Color(0xFF778899),
backgroundImage: AssetImage("assets/img/icon_logo.jpg"),
)
),
// This list work well!
ListTile(
leading: new Icon(Icons.arrow_forward_ios),
title: new Text("TEST"),
onTap: () {
Navigator.of(context).pop();
Navigator.of(context).push(MaterialPageRoute(
builder: (BuildContext context) => Page("title", "www.google.com")));
}
)
],
),
),
// The menu on my body load well the page web url but doesn't return back to my homepage.
body: new Column(
children: <Widget>[
ListTile(
leading: new Icon(Icons.arrow_forward_ios),
title: new Text("TEST"),
onTap: () {
Navigator.of(context).pop();
Navigator.of(context).push(MaterialPageRoute(
builder: (BuildContext context) => Page("title", "www.google.com")));
}
)
])
);
}
}
Page.dart
class Page extends StatelessWidget{
final String titleText;
final String urlSource;
Page(this.titleText, this.urlSource);
@override
Widget build(BuildContext context) {
// TODO: implement build
return new WebviewScaffold(
url: urlSource,
appBar: new AppBar(
title: Text(titleText),
),
withZoom: true,
withLocalStorage: true,
hidden: true,
);
}
}
main.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.green,
),
home: HomePage()
);
}
}
도와 주셔서 감사합니다!- 답변 # 1
- 답변 # 2
여기서 실제 문제는 Navigator.pop ()을 사용할 때 제거한다는 것입니다. "페이지 스택"에서 Drawer ()에서 Navigator.pop ()을 사용하는 경우 ".pop"함수는 서랍을 제거하고 메인 페이지를 유지합니다.
하지만 페이지의 "본체"의 일부인 ListTile ()과 함께 사용할 때는 제거하면됩니다.
드로어, 대화 상자 또는 키보드와 같이 눌렀을 때 메인 페이지가 접히는 것은 Navigator.pop ()을 사용하여 제거됩니다. "Navigator.pop ()"을 구현하는 페이지에있는 다른 것들은 대신 페이지를 제거하십시오.
관련 자료
- reactjs - 효과 사용은 두 기능을 모두 반환하지 않습니다
- java - JNA/WinAPI 마우스 클릭을 시뮬레이션하면 마우스 커서가 이동하고 시작 위치로 돌아 가지 않습니다
- sql server - SQL COALESCE가 결과를 반환하지 않습니다
- sql - LEFT JOIN은 모든 값을 반환하지 않습니다
- android - adb shell screencap return black image from video
- shell - KSH 수학 연산은 결과를 10 진수로 반환하지 않지만 0
- PHP의 SQL 문제, 왜 그것이 필요한 것을 반환하지 않는지 모르겠습니다
- c# - net Linq 명령이 특정 필드를 반환하지 않음
- PowerShell 함수 반환 부울이 작동하지 않음
- c# - SignalR 호출이 작동하지만 클라이언트로 돌아 가지 않습니다
- dart - 실룩 거리다 - 이 함수의 반환 유형은 'futureor '이지만 return 문으로 끝나지 않습니다
- javascript - return 문은 분명히 아무것도 반환하지 않습니다
- android - findViewById가 올바른보기 유형을 리턴하지 않는 것 같습니다
- dictionary - promiseall은 실제 결과를 반환하지 않습니다
- python 3.x - 왜 super () __ class ____ name__이 기본 클래스의 이름을 반환하지 않습니까?
- python - 캐리지 리턴은 새로운 커서 위치를 유지하지 않습니다
관련 질문
- Flutter에서 연락처 목록에서 무작위로 선택된 번호로 전화를 거는 방법은 무엇입니까?
- Firebase 사용 시 앱 실행 시 `_CastError(null 값에 Null 검사 연산자 사용)`
- "For" 함수 Flutter 내에서 removeAt 함수가 작동하지 않습니다.
- flutter : 내 전체 앱으로 TabBarView 내에서 스크롤 가능한 콘텐츠를 만드는 방법은 무엇입니까?
- flutter : 플러터가 있는 잠금 앱용 플러터 앱을 만들어야 합니다.
- FutureBuilder의 Flutter 다중 기능
- Flutter -onWillPop의 정적 메서드 상태를 변경할 수 없습니다.
- Flutter 및 Firebase 인증: 사용자/IP 주소당 한 번만 익명으로 로그인하는 방법
- flutter : 웹 소켓에서 수신한 데이터를 처리하고 main() 함수에서 showDialog()를 호출하고 사용자에게 시각적 업데이트를 제공하는 방법
- flutter : 변수 결과 속성과 함께 Navigator.pushReplacement 사용
Navigator.push () 직전에 Navigator.pop ()을 사용해서는 안됩니다.
현재 페이지를 새 페이지로 바꾸려는 경우 Navigator.of (context) .pushReplacement ()를 사용할 수 있습니다.
새로운 경로로만 이동하려면 pop 메소드를 삭제하고 push 만 사용하십시오