2015-02-07 202 views
0

我想提出一個Android應用程序,它具有以下幾個基本的佈局:滾動片段

App

活動應持有幾個片段(它們都具有不同的佈局)可以通過向左或向右滾動(在圖像的黑色邊框區域中)或按上一個/下一個按鈕來訪問碎片。

碎片的佈局包含輸入字段,當按下下一個按鈕或執行向右滑動時應該驗證輸入字段。如果輸入字段爲空,則不應顯示下一個片段。

我試着用viewpager做這件事,這隻能使用一些不太好的解決方法,所以我試圖找到一種不同的方法。

所以我的問題是:什麼是最好的方式來實現上述功能而不使用viewpager?也許把一個手勢監聽器放在碎片上,然後手工刷一下它們?

幫助將不勝感激!

+0

ViewPager有什麼問題? – Blackbelt 2015-02-07 11:24:07

+0

您可以使用手勢監聽器並根據需要替換片段。 – 2015-02-07 11:24:42

+0

@Blackbelt事實證明,驗證非常棘手。 – deimos1988 2015-02-07 11:25:03

回答

1

使用按鈕的嚮導式UI很好,至少有一個庫在那裏。我通常不同意你在滑動事件方面的做法。

事實證明,驗證是非常棘手的

我不知道你這個是什麼意思。恕我直言,最簡單的解決方法是使用ViewPager,在這種情況下,直到符合驗證條件時才添加「下一步」頁面,如果驗證條件未滿足,則刪除「下一步」頁面例如,用戶清除該字段)。您將需要使用自定義的PagerAdapter爲此,或者可能my ArrayPagerAdapter,因爲從股票適配器添加/刪除頁面不能很好地工作(儘管它們可能可能只是在一端...)。

但是,這又是我覺得你的用戶體驗不好的地方。假設你在嚮導中有四個可能的頁面,在這裏命名爲A,B,C和D.用戶從A開始,填寫你的領域,前進到B,填寫你的領域,前進到C,填寫你的領域,前進到D,返回到B,並清除B的字段(或以其他方式使其無效)。根據你的流程,用戶不能再次前進到C,直到B的字段被填寫。從通過「下一步」按鈕前進的角度來看,在B的表單驗證之前將其禁用是完全合理的,並且用戶可能在之前就已經看到了該行爲(例如桌面操作系統嚮導)。但用戶不一定會明白,「下一步」按鈕和輕掃在邏輯上是相同的,因爲用戶一旦意識到他們可以在其中滑動,就可以使用它們滑動到任何他們想要的內容。因此,如果我這樣做,我會選擇一個簡單的嚮導UI,不需要滑動事件。

0

ViewPager會加載至少兩個片段,您正在查看的片段和下一個/上一個片段。所以你永遠無法用ViewPager以平滑的方式做你願意做的事情。

取而代之,您可以使用上一個和下一個按鈕分離當前片段,並在驗證輸入後附加新片段。如果你希望它看起來像一個ViewPager,你可以添加幻燈片動畫到當前片段和新的片段。