簡體   English   中英

Android:向左或向右滑動分頁視圖

[英]Android : Paging a view with sliding left or right

我在當前正在開發的應用程序中實現 sertant 效果時遇到問題。 塞納里奧是這樣的

在我的第一個活動中,我顯示一個列表,一旦單擊一個項目,我就會顯示一個包含有關該項目的更多詳細信息的新活動。

現在我想在詳細頁面上實現分頁,以便用戶可以向左或向右滑動並顯示下一個或上一個項目,而不必將 go 返回到列表 select。

我有一個用於這些項目的適配器,因此獲得有關顯示的項目和“兄弟姐妹”的信息並不重要

我一直在玩視圖翻轉器,但據我所知,它需要在視圖翻轉器的 stumic 中呈現的“視圖”,我不敢在創建時渲染 300 個項目。 關於使用 3 個視圖並填充 em onCreate 的任何提示?

我已經用 animation 調用了相同的活動,所以它會滑動並意圖告訴要顯示哪些數據,但是這樣做的性能肯定很差。

有任何想法嗎?

如果您只想看到我想要的動畫/功能。 在你的朋友詳細頁面上 Tjek 出谷歌緯度尋呼。

//謝謝先進

我已經使用ViewFlipper實現了相同的行為,並按需加載視圖。

這是我正在做的事情的快照。 它與您想要的不完全相同,但您可以采用相同的方法。

/**
     * starts a new activity.
     * @param activityToStart the activity class.
     */
    public static void startActivity(Class<?> activityToStart) {
        String name = activityToStart.getName();
        while (history.contains(name)) {
            name += "1";
        }

        View view = activity.getLocalActivityManager().startActivity(name,
                new Intent(activity, activityToStart)).getDecorView();

        history.add(name);
        addView(view, name);
    }

     public void addView(View newView, String name) {
    // add its name to the history.
    history.add(name);
    // change the view.
    flipper.addView(newView);
    if(history.size() != 1) {
        flipper.setInAnimation(inFromUpAnimation());

        View oldView = getActivityAt(history.size() - 2);
        flipper.setOutAnimation(outFromBottomAnimation());
        flipper.showNext();
    }
}

private void back() {
   if(history.size() > 1) {
       View oldView = getActivityAt(history.size() - 1);
       flipper.setInAnimation(inFromBottomAnimation());
       setRemoveAnimation(oldView, outToUpAnimation(), history.remove(history.size() - 1));
       flipper.showPrevious();
   } else {
       finish();
   }
}

這里我有 3 個功能(要在您的情況下啟動一個新活動,您可以根據需要更改它以使視圖膨脹,第二個添加視圖,第三個在用戶回擊時刪除視圖)。

希望這可以幫助!

另一種解決方案是使用Android 兼容性 package中的新ViewPager組件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM