2017-01-09 5 views
8

У меня есть RecyclerView, реализованный во фрагменте, и я пытаюсь добавить разделители в код. У меня есть RecylcerView, работающий по назначению, но LinearLayoutManager не может решить функцию getOrientation().LinearLayoutManager не может решить getOrientation()

private RecyclerView mRecyclerView; 
private RecyclerView.Adapter mAdapter; 
private RecyclerView.LayoutManager mLayoutManager; 

@Nullable 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
{ 
    View root = (View) inflater.inflate(R.layout.fragment_settings, null); 
    getActivity().setTitle("Settings"); 

    mRecyclerView = (RecyclerView) root.findViewById(R.id.recycler_view_settings); 

    mRecyclerView.setHasFixedSize(true); 

    mLayoutManager = new LinearLayoutManager(getContext()); 
    mRecyclerView.setLayoutManager(mLayoutManager); 
    mAdapter = new SettingsAdapter(getResources().getStringArray(R.array.setting_list)); 
    mRecyclerView.setAdapter(mAdapter); 
    DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(mRecyclerView.getContext(), mLayoutManager.getOrientation()); 
    mRecyclerView.addItemDecoration(dividerItemDecoration); 
    return root; 
} 
+1

Я был в предположении, что, так как я был в состоянии инициализировать mLayoutManager как LinearLayoutManager, что я смог бы использовать свои функции. Изменение RecyclerView.LayoutManager mLayoutManager для LinearLayoutManager mLayoutManager разрешил проблему. –

+1

LayoutManager не объявляет метод getOrientation(), LinearLayoutManager делает. – BladeCoder

ответ

3

У меня такая же проблема, когда я создаю разделитель. Вы можете просто поставить ориентацию на себя, LinearLayoutManager.VERTICAL или LinearLayoutManager.HORIZONTAL, в соответствии с вашей позицией RecyclerView. Меня устраивает.

9

Изменить

private RecyclerView.LayoutManager mLayoutManager; 

в

private LinearLayoutManager mLayoutManager;