@@ -29,7 +29,6 @@ class RepositoryDetailPage extends StatefulWidget {
2929 _RepositoryDetailPageState createState () => _RepositoryDetailPageState (userName, reposName);
3030}
3131
32-
3332class _RepositoryDetailPageState extends State <RepositoryDetailPage > {
3433 ReposHeaderViewModel reposHeaderViewModel = new ReposHeaderViewModel ();
3534
@@ -43,7 +42,7 @@ class _RepositoryDetailPageState extends State<RepositoryDetailPage> {
4342
4443 final TarWidgetControl tarBarControl = new TarWidgetControl ();
4544
46- final BranchControl branchControl = new BranchControl ("master" );
45+ final ReposDetailParentControl reposDetailParentControl = new ReposDetailParentControl ("master" );
4746
4847 final PageController topPageControl = new PageController ();
4948
@@ -60,7 +59,7 @@ class _RepositoryDetailPageState extends State<RepositoryDetailPage> {
6059 _RepositoryDetailPageState (this .userName, this .reposName);
6160
6261 _getReposDetail () async {
63- var result = await ReposDao .getRepositoryDetailDao (userName, reposName, branchControl .currentBranch);
62+ var result = await ReposDao .getRepositoryDetailDao (userName, reposName, reposDetailParentControl .currentBranch);
6463 if (result != null && result.result) {
6564 setState (() {
6665 reposDetailInfoPageControl.repository = result.data;
@@ -175,9 +174,9 @@ class _RepositoryDetailPageState extends State<RepositoryDetailPage> {
175174 Navigator .pop (context);
176175 });
177176 }),
178- _renderBranchPopItem (branchControl .currentBranch, branchList, (value) {
177+ _renderBranchPopItem (reposDetailParentControl .currentBranch, branchList, (value) {
179178 setState (() {
180- branchControl .currentBranch = value;
179+ reposDetailParentControl .currentBranch = value;
181180 tarBarControl.footerButton = _getBottomWidget ();
182181 });
183182 if (infoListKey.currentState != null && infoListKey.currentState.mounted) {
@@ -207,6 +206,7 @@ class _RepositoryDetailPageState extends State<RepositoryDetailPage> {
207206 return new FlatButton (
208207 padding: EdgeInsets .all (0.0 ),
209208 onPressed: () {
209+ reposDetailParentControl.currentIndex = i;
210210 topPageControl.jumpTo (MediaQuery .of (context).size.width * i);
211211 },
212212 child: new Text (
@@ -227,8 +227,10 @@ class _RepositoryDetailPageState extends State<RepositoryDetailPage> {
227227 return [
228228 ///Release Page
229229 new GSYOptionModel (GSYStrings .repos_option_release, GSYStrings .repos_option_release, (model) {
230- String releaseUrl = reposDetailInfoPageControl.repository == null ? GSYStrings .app_default_share_url : reposDetailInfoPageControl.repository.htmlUrl + "/releases" ;
231- String tagUrl = reposDetailInfoPageControl.repository == null ? GSYStrings .app_default_share_url : reposDetailInfoPageControl.repository.htmlUrl + "/tags" ;
230+ String releaseUrl =
231+ reposDetailInfoPageControl.repository == null ? GSYStrings .app_default_share_url : reposDetailInfoPageControl.repository.htmlUrl + "/releases" ;
232+ String tagUrl =
233+ reposDetailInfoPageControl.repository == null ? GSYStrings .app_default_share_url : reposDetailInfoPageControl.repository.htmlUrl + "/tags" ;
232234 NavigatorUtils .goReleasePage (context, userName, reposName, releaseUrl, tagUrl);
233235 }),
234236 ];
@@ -245,22 +247,26 @@ class _RepositoryDetailPageState extends State<RepositoryDetailPage> {
245247 Widget build (BuildContext context) {
246248 Widget widget = new GSYCommonOptionWidget (titleOptionControl, otherList: _getMoreOtherItem ());
247249 return new GSYTabBarWidget (
248- type: GSYTabBarWidget .TOP_TAB ,
249- tarWidgetControl: tarBarControl,
250- tabItems: _renderTabItem (),
251- tabViews: [
252- new ReposDetailInfoPage (reposDetailInfoPageControl, userName, reposName, branchControl, key: infoListKey),
253- new RepositoryDetailReadmePage (userName, reposName, branchControl, key: readmeKey),
254- new RepositoryDetailIssuePage (userName, reposName),
255- new RepositoryDetailFileListPage (userName, reposName, branchControl, key: fileListKey),
256- ],
257- topPageControl: topPageControl,
258- backgroundColor: GSYColors .primarySwatch,
259- indicatorColor: Colors .white,
260- title: new GSYTitleBar (
261- reposName,
262- rightWidget: widget,
263- ));
250+ type: GSYTabBarWidget .TOP_TAB ,
251+ tarWidgetControl: tarBarControl,
252+ tabItems: _renderTabItem (),
253+ tabViews: [
254+ new ReposDetailInfoPage (reposDetailInfoPageControl, userName, reposName, reposDetailParentControl, key: infoListKey),
255+ new RepositoryDetailReadmePage (userName, reposName, reposDetailParentControl, key: readmeKey),
256+ new RepositoryDetailIssuePage (userName, reposName),
257+ new RepositoryDetailFileListPage (userName, reposName, reposDetailParentControl, key: fileListKey),
258+ ],
259+ topPageControl: topPageControl,
260+ backgroundColor: GSYColors .primarySwatch,
261+ indicatorColor: Colors .white,
262+ title: new GSYTitleBar (
263+ reposName,
264+ rightWidget: widget,
265+ ),
266+ onPageChanged: (index) {
267+ reposDetailParentControl.currentIndex = index;
268+ },
269+ );
264270 }
265271}
266272
@@ -275,8 +281,10 @@ class BottomStatusModel {
275281 BottomStatusModel (this .watchText, this .starText, this .watchIcon, this .starIcon, this .watch, this .star);
276282}
277283
278- class BranchControl {
284+ class ReposDetailParentControl {
285+ int currentIndex = 0 ;
286+
279287 String currentBranch;
280288
281- BranchControl (this .currentBranch);
289+ ReposDetailParentControl (this .currentBranch);
282290}
0 commit comments