2016-08-13 64 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