簡體   English   中英

Android-ViewPager作為ListView中的標題

[英]Android - ViewPager as a Header in a ListView

TL; DR -ViewPager作為ListView Header會產生一些問題。

我的活動有一個ListView,可以顯示幾種類型的數據。我有一個HeaderView,一個粘性視圖,其余數據是一個“普通”列表項。

我正在使用此庫-> https://github.com/LarsWerkman/QuickReturnListView作為我的列表視圖。

在我的HeaderView中,我有一個用於查看我的用戶的2個個人資料圖像的分頁器。

2個問題:

  1. 向右滾動尋呼機到下一張圖像不會將圖像打開到全屏寬度。(但是,如果在列表視圖中向下滾動,則向上滾動回到屏幕頂部會“重繪”標題視圖,如果您再次滾動尋呼機已修復!)
  2. 有時圖像不會加載到我的視圖尋呼機中。

您可以看到這些圖像中的錯誤,第一個圖像處於試圖將尋呼機向右滾動的狀態,第二個圖像是錯誤

形象一

圖片二

有人遇到過這樣的問題嗎?

我在某些地方讀到,在列表視圖中使用視圖分頁器並不是最佳選擇,有沒有其他方法可以實現我的目標?

我遇到了同樣的問題,嘗試刪除列表視圖的那個第三方庫,那是在我使用同一第三方庫的那天,那確實是個問題。 改用普通的listview。

幾個月前,我做了一個想做的類似的把戲。 我嘗試了Web上幾乎所有關於此快速返回的庫,但所有庫都有bug,不適合我。 也不適用於其中包含viewpager的標頭。

后來我實現了自己的滾動偵聽器。 這不完全是一種快速返回標題模式,但是如果有時間,您可以在其中添加動畫。

listView.setOnScrollListener(new AbsListView.OnScrollListener() {
         @SuppressLint("NewApi")
         @Override
         public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
            int scrollOffset = 0;
            float transitionY;

            if (firstVisibleItem > 0) {
               scrollOffset += headerHeight;
               if (firstVisibleItem > 1) {
                  scrollOffset += (firstVisibleItem - 1) * cellHeight;
               }
            }

            if (listView.getChildCount() > 0) {
               scrollOffset += -listView.getChildAt(0).getTop();
               scrollOffset = -scrollOffset;
            }

            float scrollDelta = scrollOffset - prevOffset;
            float nextY = mQuickReturnView.getY() + scrollDelta;

            if (nextY < minRawY) {
               transitionY = minRawY;
            }
            else if (nextY > qReturnDelta) {
               transitionY = qReturnDelta;
            }
            else {
               transitionY = nextY;
            }

            mQuickReturnView.setY(transitionY);
            prevOffset = scrollOffset;
         }

         @Override
         public void onScrollStateChanged(AbsListView view, int scrollState) {
         }
      });

而且我在標題中使用了查看尋呼機和pageradapter。 在我的解決方案中,您必須對列表視圖項使用固定大小,並將其聲明為CellHeight ,對標頭使用固定大小。 這是QuickReturnHeight

使用ListView + Header + ViewPager來實現此模式有點困難。

希望對您有幫助。

暫無
暫無

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

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