2016-08-13 4 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 для предложения ur..I будет держать это в виду в следующий раз .. – shahid17june

 Смежные вопросы

  • Нет связанных вопросов^_^