2013-10-10 49 views
0

我有一個4頁的ViewPager。我們打電話給A,B,C,D。ViewPager中沒有改變頁面的片段

頁面A,B,C總是相同的,但最後一頁必須顯示一個取決於應用程序狀態的片段。 當用戶未登錄時,頁面D必須顯示登錄片段以及用戶登錄時,頁面D必須顯示配置文件片段。

要做到這一點,我只需向我的適配器添加一個標誌,以控制用戶是否登錄或不在頁面滑動。

問題是,當用戶單擊登錄按鈕時,我必須顯示配置文件片段。我不能強迫尋呼機使用第五個頁面來更改頁面,因爲我需要ViewPagerIndicator只顯示4行來指示頁面。

那麼如何改變最後一個片段與另一個沒有改變頁面?

請記住,我不能使用fragment內部片段技術,因爲我正在開發薑餅。

+0

*我不能強迫尋呼機與第五更改頁面,因爲我需要ViewPagerIndicator只顯示4行顯示的頁面* - 你可以做到這一點,你只需要讓你的適配器的'的getItem ()'方法返回位置3的新片段(當然調用'notifyDataSetChanged()')。 *請記住,我不能使用fragment內部片段技術,因爲我正在開發Gingerbread。* - 是的,您可以,因爲嵌套片段可通過兼容性軟件包獲得。 – Luksprog

回答

0

將您的架構更改爲包含D(登錄方面,配置文件方面)的片段頁面D,E。

使用FragmentStatePagerAdapter,以便您可以'刪除'查看的頁面。

On a stateChange to 'onNoCurrentUser' ... 
    ... remove fragment=profile 
    ... add fragment=logon 
    ... call notifyDataSetChanged 

On a stateChange to 'onCurrentUser' ... 

    ... remove fragment=logon 
    ... add fragment=profile 
    ... call notifyDataSetChanged