DividerLibrary

A quick adapter library on android

License

License

Categories

Categories

IDE Development Tools
GroupId

GroupId

com.github.thepacific
ArtifactId

ArtifactId

divider
Last Version

Last Version

0.0.2
Release Date

Release Date

Type

Type

aar
Description

Description

DividerLibrary
A quick adapter library on android
Project URL

Project URL

https://github.com/thepacific/divider
Source Code Management

Source Code Management

https://github.com/thepacific/divider

Download divider

How to add to project

<!-- https://jarcasting.com/artifacts/com.github.thepacific/divider/ -->
<dependency>
    <groupId>com.github.thepacific</groupId>
    <artifactId>divider</artifactId>
    <version>0.0.2</version>
    <type>aar</type>
</dependency>
// https://jarcasting.com/artifacts/com.github.thepacific/divider/
implementation 'com.github.thepacific:divider:0.0.2'
// https://jarcasting.com/artifacts/com.github.thepacific/divider/
implementation ("com.github.thepacific:divider:0.0.2")
'com.github.thepacific:divider:aar:0.0.2'
<dependency org="com.github.thepacific" name="divider" rev="0.0.2">
  <artifact name="divider" type="aar" />
</dependency>
@Grapes(
@Grab(group='com.github.thepacific', module='divider', version='0.0.2')
)
libraryDependencies += "com.github.thepacific" % "divider" % "0.0.2"
[com.github.thepacific/divider "0.0.2"]

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

Project Modules

There are no modules declared in this project.

Divider

Android library providing a simple way to control divider items of RecyclerView.

Note: it only supports LinearLayoutManager by now

Download

Setup

compile 'com.github.thepacific:divider:{lastestVersion}'

Usage

        recyclerView.addItemDecoration(RecyclerViewDivider.builder(this)
                .horizontal()//default is vertical
                .leftMargin(R.dimen.divider_left)
                .rightMargin(R.dimen.divider_right)
                .topMargin(R.dimen.divider_top)
                .bottomMargin(R.dimen.divider_bottom)
                .leftMarginFactory(new RecyclerViewDivider.MarginFactory() {
                    @Override
                    public int getMargin(int position) {
                        return getResources().getDimensionPixelSize(R.dimen.divider_left);
                    }
                })
                .rightMarginFactory(new RecyclerViewDivider.MarginFactory() {
                    @Override
                    public int getMargin(int position) {
                        return getResources().getDimensionPixelSize(R.dimen.divider_right);
                    }
                })
                .topMarginFactory(new RecyclerViewDivider.MarginFactory() {
                    @Override
                    public int getMargin(int position) {
                        return getResources().getDimensionPixelSize(R.dimen.divider_top);
                    }
                })
                .bottomMarginFactory(new RecyclerViewDivider.MarginFactory() {
                    @Override
                    public int getMargin(int position) {
                        return getResources().getDimensionPixelSize(R.dimen.divider_bottom);
                    }
                })
                .color(R.color.divider, R.dimen.divider_stroke_width)
                .drawable(R.drawable.divider)
                .drawableFactory(new RecyclerViewDivider.DrawableFactory() {
                    @Override
                    public Drawable getDrawable(int position) {
                        return null;
                    }

                    @Override
                    public int getStrokeWidth(int position) {
                        return 0;
                    }
                })
                .displayFilter(new RecyclerViewDivider.DisplayFilter() {
                    @Override
                    public boolean isDisplay(int position) {
                        return false;
                    }
                })
                .hideLastDivider()
                .build());

or

      RecyclerViewDivider.builder(this).build().addTo(recyclerView);

DrawableFactory

When you are using a DrawableFactory, please be aware of this

        new RecyclerViewDivider.DrawableFactory() {
            @Override
            public Drawable getDrawable(int position) {
                /**
                 * When using ColorDrawable, don't forget to override {@link getStrokeWidth()}.
                 * Because ColorDrawable.getIntrinsicWidth() always returns -1.
                 * So we need {@link getStrokeWidth()} to provider ColorDrawable's size
                 * For example:
                 *
                 * <pre><code>
                 *   new ColorDrawable(ContextCompat.getColor(MainActivity.this, R.color.divider));
                 * </code></pre>
                 *
                 * or
                 *
                 * <pre><code>
                 *   <drawable name="divider">#303F9F</drawable>
                 * </code></pre>
                 */
                return null;
            }

            @Override
            public int getStrokeWidth(int position) {
                /**
                 * No need to override, when using XML Drawable resource.
                 * Because in this case Drawable.getIntrinsicWidth() always returns it's size.
                 * So {@link getStrokeWidth()} is useless.
                 * For example:
                 *
                 * divider.xml drawable
                 *
                 * <pre><code>
                 *   <?xml version="1.0" encoding="utf-8"?>
                 *       <shape xmlns:android="http://schemas.android.com/apk/res/android"
                 *           android:shape="rectangle">
                 *           <size android:height="1dp" android:width="1dp"></size>
                 *           <solid android:color="@color/divider"></solid>
                 *       </shape>
                 * </code></pre>
                 */
                return 0;
            }
        };

Similar project

RecyclerViewDivider https://github.com/Fondesa/RecyclerViewDivider

License

The MIT License

com.github.thepacific

thepacific

Thepacific Corp

Versions

Version
0.0.2
0.0.1