中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

如何自定義Android的ItemDecoration

小樊
81
2024-08-15 10:00:38
欄目: 編程語言

要自定義Android的ItemDecoration,可以創建一個繼承自RecyclerView.ItemDecoration的自定義類,并實現其中的方法來自定義item的繪制。

下面是一個示例代碼,可以自定義ItemDecoration來實現分割線的效果:

public class CustomItemDecoration extends RecyclerView.ItemDecoration {
    private int dividerHeight;

    public CustomItemDecoration(int dividerHeight) {
        this.dividerHeight = dividerHeight;
    }

    @Override
    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
        outRect.set(0, 0, 0, dividerHeight);
    }

    @Override
    public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
        int left = parent.getPaddingLeft();
        int right = parent.getWidth() - parent.getPaddingRight();

        for (int i = 0; i < parent.getChildCount(); i++) {
            View child = parent.getChildAt(i);
            RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams();
            int top = child.getBottom() + params.bottomMargin;
            int bottom = top + dividerHeight;

            Paint paint = new Paint();
            paint.setColor(Color.RED);
            c.drawRect(left, top, right, bottom, paint);
        }
    }
}

然后在RecyclerView中設置這個自定義的ItemDecoration:

RecyclerView recyclerView = findViewById(R.id.recyclerView);
recyclerView.addItemDecoration(new CustomItemDecoration(10));

這樣就可以實現自定義的分割線效果。通過自定義ItemDecoration,可以實現各種不同的item樣式和效果,例如間隔、分割線、邊距等。

0
五大连池市| 兴化市| 慈溪市| 河曲县| 阜平县| 林西县| 乌海市| 焉耆| 福鼎市| 炎陵县| 洞口县| 伊春市| 大埔区| 特克斯县| 泰安市| 新竹市| 怀化市| 卢湾区| 奉节县| SHOW| 嘉禾县| 滦平县| 中阳县| 张家界市| 肥乡县| 五大连池市| 关岭| 黑山县| 锡林浩特市| 绵阳市| 黄陵县| 丰都县| 咸宁市| 寿光市| 简阳市| 沅陵县| 江源县| 商南县| 京山县| 芮城县| 海南省|