14

RecyclerView在片段中实现了一个,我正在尝试在代码中添加分隔符。我RecylcerView按预期工作,但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;
}
4

3 回答 3

21

改变

private RecyclerView.LayoutManager mLayoutManager;

private LinearLayoutManager mLayoutManager;
于 2017-03-01T21:17:54.400 回答
9

我在创建分隔符时遇到了同样的问题。您可以简单地自己放置方向,LinearLayoutManager.VERTICAL或者LinearLayoutManager.HORIZONTAL根据方向您的RecyclerView. 这个对我有用。

于 2017-02-18T23:23:03.117 回答
0

您可以在 XML 文件而不是 recyclerView 的 CardView 中使用以下代码。

android:layout_marginTop="8dp

于 2020-02-05T16:32:09.530 回答