2016-08-13 109 views
0

我正在關注this教程,並嘗試爲每個單獨的用戶而不是專輯創建一個配置文件頁面。但是,我正在使用片段而不是活動,並意識到我的代碼將與教程有所不同。片段getActivity不起作用

我已經使用了Android開發人員文檔和我自己的知識來修復大部分從活動轉移到片段的錯誤,但是我似乎無法找到解決此問題的任何幫助,不勝感激。

我有下面的代碼工作正常:

recyclerView = (RecyclerView) getActivity().findViewById(R.id.recycler_view); 
RecyclerView.LayoutManager mLayoutManager = new GridLayoutManager(getActivity(), 2); 
recyclerView.setLayoutManager(mLayoutManager); 

但是當我嘗試添加到回收視圖我得到一個錯誤:

recyclerView.addItemDecoration(new GridSpacingItemDecoration(2, dpToPx(10), true)); 

Cant resolve symbol GridSpacingItemDecoration

Cant resolve method dpToPx(int)

下面是它的類作爲要求

public class GridSpacingItemDecoration extends RecyclerView.ItemDecoration { 

    private int spanCount; 
    private int spacing; 
    private boolean includeEdge; 

    public GridSpacingItemDecoration(int spanCount, int spacing, boolean includeEdge) { 
     this.spanCount = spanCount; 
     this.spacing = spacing; 
     this.includeEdge = includeEdge; 
    } 

    @Override 
    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { 
     int position = parent.getChildAdapterPosition(view); // item position 
     int column = position % spanCount; // item column 

     if (includeEdge) { 
      outRect.left = spacing - column * spacing/spanCount; // spacing - column * ((1f/spanCount) * spacing) 
      outRect.right = (column + 1) * spacing/spanCount; // (column + 1) * ((1f/spanCount) * spacing) 

      if (position < spanCount) { // top edge 
       outRect.top = spacing; 
      } 
      outRect.bottom = spacing; // item bottom 
     } else { 
      outRect.left = column * spacing/spanCount; // column * ((1f/spanCount) * spacing) 
      outRect.right = spacing - (column + 1) * spacing/spanCount; // spacing - (column + 1) * ((1f/ spanCount) * spacing) 
      if (position >= spanCount) { 
       outRect.top = spacing; // item top 
      } 
     } 
    } 
} 
+0

將'GridSpacingItemDecoration'和'dpToPx()'複製到您的片段。 – tynn

+0

不用擔心我解決了這個問題,這是由於我創建了另一個課程 – UCLCoder

+0

所以,現在你的問題解決了嗎? @UCLCoder –

回答

0

使硫s私有方法

+0

請求的細節,請把它放在評論中,而不是回答!不是一個好習慣! – Smit

+0

@ UCLCoder,如果我的建議也在工作,那麼請接受答案,以便奧特人可以得到幫助 – shahid17june

+0

@ smit,thaks你的建議..我會記住下次.. – shahid17june