20 Şubat 2017 Pazartesi

Android Recyclerview Disable Scrolling

Bu işlem için RecyclerView nesnesinin LayoutManager özelliğinden yardım alacağız.



Öncelikle CustomLayoutManager adında yeni bir sınıf oluşturuyoruz ve aşağıdaki gibi tasarlıyoruz.

public class CustomGridLayoutManager extends LinearLayoutManager {
    private boolean isScrollEnabled = true;

    public CustomGridLayoutManager(Context context) {
        super(context);
    }

    public void setScrollEnabled(boolean value) {
        this.isScrollEnabled = value;
    }

    @Override
    public boolean canScrollVertically() {
        return super.canScrollVertically() && isScrollEnabled;
    }
}


RecyclerView için LayoutManager oluştururken yeni hazırladığımız sınftan extend ediyoruz.

RecyclerView main_dashboard;
CustomGridLayoutManager layoutManager = new CustomGridLayoutManager(this.getApplicationContext());
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
layoutManager.scrollToPosition(0);

main_dashboard.setLayoutManager(layoutManager);
main_dashboard.setHasFixedSize(true);


layoutManage.setScrollEnabled(true/false) şeklinde istediğinizde scroll olayının erişilebilirliğini değiştirebilirsiniz.