Headertab

Drop Down MenusCSS Drop Down MenuPure CSS Dropdown Menu

Saturday 28 October 2017

Recyclerview decoration in android

Hello friends

If you want add decoration in your recyclerview so follow below steps

Decoration

public class MarginDecoration extends RecyclerView.ItemDecoration {
  private int margin;

  public MarginDecoration(Context context) {
    margin = context.getResources().getDimensionPixelSize(R.dimen.item_margin);
  }

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

}

Above decoration add margin 





Mainactivity.java


package com.samset.recyclerviewmargindecoration;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.AppCompatCheckBox;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View;
import android.widget.RadioButton;
import android.widget.RadioGroup;

import com.samset.recyclerviewmargindecoration.decoration.ColorFullDecoration;
import com.samset.recyclerviewmargindecoration.decoration.MarginDecoration;
import com.samset.recyclerviewmargindecoration.decoration.VerticalDecoration;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {
    private RecyclerView recyclerView;
    private RadioGroup radioGroup;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();

        radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup radioGroup, int i) {
                View radioButton = radioGroup.findViewById(i);
                int index = radioGroup.indexOfChild(radioButton);
                RadioButton r = (RadioButton) radioGroup.getChildAt(index);
                if (r.getText().toString().equalsIgnoreCase("Simple")) {
                    recyclerView.addItemDecoration(new MarginDecoration(MainActivity.this));
                } else if (r.getText().toString().equalsIgnoreCase("Vertical")) {
                    recyclerView.addItemDecoration(new VerticalDecoration(MainActivity.this));
                } else if (r.getText().toString().equalsIgnoreCase("With Border")) {
                    recyclerView.addItemDecoration(new ColorFullDecoration());
                }

            }
        });

        setRecyclerView();

    }

    private void setRecyclerView() {

        recyclerView.setHasFixedSize(true);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));
        recyclerView.setAdapter(new DecorateAdapter(getList()));
    }

    private List<String> getList() {
        List<String> lists = new ArrayList<String>();
        for (int i = 0; i < 50; ++i) {
            lists.add("Item " + String.valueOf(i));
        }
        return lists;
    }

    private void initView() {
        radioGroup = findViewById(R.id.rg);
        recyclerView = (RecyclerView) findViewById(R.id.recyclerview);
    }
}


activitymain.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.samset.recyclerviewmargindecoration.MainActivity">

    <LinearLayout
        android:id="@+id/parent"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:padding="5dp"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <RadioGroup
            android:id="@+id/rg"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">

            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Simple" />

            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Vertical" />

            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="With Border" />
        </RadioGroup>


    </LinearLayout>

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recyclerview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toBottomOf="@+id/parent" />

</android.support.constraint.ConstraintLayout>






Thank you 
Enjoy 

See full sorce code


See live sample
  





















No comments:

Post a Comment