package com.marshalchen.ultimaterecyclerview.demo.loadmoredemo; import android.annotation.TargetApi; import android.graphics.Color; import android.os.Build; import android.support.v4.view.animation.LinearOutSlowInInterpolator; import android.view.LayoutInflater; import android.view.View; import android.view.ViewTreeObserver; import com.hkm.slider.SliderLayout; import com.hkm.slider.SliderTypes.BaseSliderView; import com.hkm.slider.SliderTypes.TextSliderView; import com.hkm.slider.TransformerL; import com.marshalchen.ultimaterecyclerview.UltimateRecyclerView; import com.marshalchen.ultimaterecyclerview.demo.R; import com.marshalchen.ultimaterecyclerview.demo.rvComponents.sectionZeroAdapter; import com.marshalchen.ultimaterecyclerview.demo.modules.SampleDataboxset; import java.util.ArrayList; /** * Created by hesk on 18/3/16. */ public class SliderHeader extends BasicFunctions implements BaseSliderView.OnSliderClickListener { private sectionZeroAdapter simpleRecyclerViewAdapter = null; @Override protected void onLoadmore() { SampleDataboxset.insertMoreWhole(simpleRecyclerViewAdapter, 2); } @Override protected void onFireRefresh() { // simpleRecyclerViewAdapter.insertLast(moreNum++ + " Refresh things"); ultimateRecyclerView.setRefreshing(false); // ultimateRecyclerView.scrollBy(0, -50); linearLayoutManager.scrollToPosition(0); //ultimateRecyclerView.setAdapter(simpleRecyclerViewAdapter); //simpleRecyclerViewAdapter.notifyDataSetChanged(); simpleRecyclerViewAdapter.removeAll(); ultimateRecyclerView.disableLoadmore(); ultimateRecyclerView.showEmptyView(); } @Override protected void addButtonTrigger() { simpleRecyclerViewAdapter.insertFirst("rand added item"); ultimateRecyclerView.reenableLoadmore(); } @Override protected void removeButtonTrigger() { simpleRecyclerViewAdapter.removeLast(); } @Override protected void doURV(UltimateRecyclerView urv) { ultimateRecyclerView.setHasFixedSize(false); simpleRecyclerViewAdapter = new sectionZeroAdapter(new ArrayList<String>()); configLinearLayoutManager(ultimateRecyclerView); enableParallaxHeader(); enableEmptyViewPolicy(); enableLoadMore(); ultimateRecyclerView.setRecylerViewBackgroundColor(Color.parseColor("#ffff66ff")); enableRefresh(); // enableScrollControl(); // enableSwipe(); // enableItemClick(); ultimateRecyclerView.setItemViewCacheSize(simpleRecyclerViewAdapter.getAdditionalItems()); ultimateRecyclerView.setNormalHeader(initSlider(ultimateRecyclerView)); ultimateRecyclerView.setAdapter(simpleRecyclerViewAdapter); } private View initSlider(UltimateRecyclerView listview) { final View view = LayoutInflater.from(getApplication()).inflate(R.layout.list_item_header, null, false); final ViewTreeObserver vto = listview.getViewTreeObserver(); vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @TargetApi(Build.VERSION_CODES.JELLY_BEAN) @Override public void onGlobalLayout() { view.getViewTreeObserver().removeOnGlobalLayoutListener(this); //Log.d("vto", "globallayout"); final SliderLayout sl = (SliderLayout) view.findViewById(R.id.header_slider); try { sl.setOffscreenPageLimit(1); sl.setSliderTransformDuration(500, new LinearOutSlowInInterpolator()); sl.setPresetTransformer(TransformerL.Default); sl.setPresetIndicator(SliderLayout.PresetIndicators.Center_Bottom); sl.getPagerIndicator().setDefaultIndicatorColor(R.color.accent, R.color.primaryDark); sl.getPagerIndicator().setVisibility(View.GONE); setup_double_faces(sl); } catch (Exception e) { e.printStackTrace(); } } }); return view; } String[] urls = { // "http://pcdn.500px.net/35939982/127d53ceac436e2e17a11ea42bb2cd7719b9f1e1/4.jpg", "http://cs407831.userapi.com/v4078f31207/18fe/4Tz8av5Hlvo.jpg", // special url with error "http://cs407831.userapi.com/v407831207/1906/oxoP6URjFtA.jpg", "http://cs407831.userapi.com/v407831207/190e/2Sz9A774hUc.jpg", "http://cs407831.userapi.com/v407831207/1916/Ua52RjnKqjk.jpg", "http://cs407831.userapi.com/v407831207/190e/2Sz9A774hUc.jpg", "http://cs407831.userapi.com/v407831207/1916/Ua52RjnKqjk.jpg", "http://cs407831.userapi.com/v407831207/190e/2Sz9A774hUc.jpg", "http://cs407831.userapi.com/v407831207/1916/Ua52RjnKqjk.jpg", "http://cs407831.userapi.com/v407831207/191e/QEQE83Ok0lQ.jpg" }; protected void setup_double_faces(final SliderLayout mslide) throws Exception { ArrayList<BaseSliderView> ie = new ArrayList<>(); // mslide.setCustomAnimation(new DescriptionAnimation(250, new DecelerateInterpolator())); for (int i = 0; i < urls.length; i++) { TextSliderView textSliderView = new TextSliderView(this); // initialize a SliderLayout textSliderView .image(urls[i]) .setScaleType(BaseSliderView.ScaleType.Fit) .setOnSliderClickListener(this); //add your extra information ie.add(textSliderView); } mslide.loadSliderList(ie); } @Override public void onSliderClick(BaseSliderView coreSlider) { } }