リサイクラビューの各リスト項目の間にスペースを追加しようとしていますが、それはいくつかの理由で適切に機能しません。私はこのソリューションを実装するためのガイドに従ってきましたが、答えを見つけることができないようです。スペースを追加していますが、スペースは次のリストアイテムの上に置かれます。RecyclerView SimpleItemDividerが区切り文字を間に追加しない
これは私のrecyclerviewが現在のように見えるものです: - My RecyclerView
ここでは私のクラスである: - divider.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<size
android:width="40dp"
android:height="40dp" />
<solid
android:color="@color/white"/>
</shape>
SimpleDividerItemDecorationクラス
public class SimpleDividerItemDecoration extends RecyclerView.ItemDecoration {
private Drawable mDivider;
public SimpleDividerItemDecoration(Context context) {
mDivider = ContextCompat.getDrawable(context,R.drawable.divider);
}
@Override
public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) {
int left = parent.getPaddingLeft();
int right = parent.getWidth() - parent.getPaddingRight();
int childCount = parent.getChildCount();
for (int i = 0; i < childCount; i++) {
View child = parent.getChildAt(i);
RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams();
int top = child.getBottom() + params.bottomMargin;
int bottom = top + mDivider.getIntrinsicHeight();
mDivider.setBounds(left, top, right, bottom);
mDivider.draw(c);
}
}
}
私の中のonCreateメソッドオブジェクトを取得するフラグメントクラス
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View v = inflater.inflate(R.layout.fragment_popular_picks, container, false);
recyclerView = (RecyclerView)v.findViewById(R.id.popular_pick_recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
recyclerView.addItemDecoration(new SimpleDividerItemDecoration(getContext()));
getPopularPost();
return v;
}
グリッド項目の周りに等しい余裕を与えますリストアイテムが左右に移動されるので、グリッドの間隔はリサイクルビューで欲しいのとまったく同じように働くと思います。左右の間隔を忘れて上下を考慮する方法はありますか? – Nero