Coder Social home page Coder Social logo

fanlayoutmanager's People

Contributors

jekaua avatar vadimhalimendikcr avatar valeryges avatar yarovoiag avatar yarovoiag-cr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fanlayoutmanager's Issues

notifyDataSetChanged() bug

This is related to this issue

When notifyDataSetChanged() on adapter, the RecyclerView scrolls automatically to top. Any thoughts?

i got This from time to time

java.lang.NullPointerException
at android.support.v7.widget.RecyclerView$LayoutManager.getPosition(RecyclerView.java:7187)
at com.cleveroad.fanlayoutmanager.FanLayoutManager.findCurrentCenterViewPos(FanLayoutManager.java:980)
at com.cleveroad.fanlayoutmanager.FanLayoutManager.onSaveInstanceState(FanLayoutManager.java:164)
at android.support.v7.widget.RecyclerView.onSaveInstanceState(RecyclerView.java:1126)
at android.view.View.dispatchSaveInstanceState(View.java:12922)
at android.view.ViewGroup.dispatchFreezeSelfOnly(ViewGroup.java:2763)
at android.support.v7.widget.RecyclerView.dispatchSaveInstanceState(RecyclerView.java:1153)
at android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:2749)
at android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:2749)
at android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:2749)
at android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:2749)
at android.view.View.saveHierarchyState(View.java:12905)
at com.android.internal.policy.impl.PhoneWindow.saveHierarchyState(PhoneWindow.java:1845)
at android.app.Activity.onSaveInstanceState(Activity.java:1277)
at android.support.v4.app.FragmentActivity.onSaveInstanceState(FragmentActivity.java:567)
at android.support.v7.app.AppCompatActivity.onSaveInstanceState(AppCompatActivity.java:511)
at android.app.Activity.performSaveInstanceState(Activity.java:1226)
at android.app.Instrumentation.callActivityOnSaveInstanceState(Instrumentation.java:1230)
at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:3451)
at android.app.ActivityThread.handleStopActivity(ActivityThread.java:3510)
at android.app.ActivityThread.access$1100(ActivityThread.java:166)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1305)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5584)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132)
at dalvik.system.NativeStart.main(Native Method)

notifyDataSetChange Not working proper

Hello,

This library working very superb. I found one issue. When i am on detail screen and coming back to fanlayout screen, at that time i need to reload data.

So i am doing normal notifydatasetchange. But that is disturbing fanlayout, and all items and their alignments get disturbed.

Can you tell me any good approach to reload view?

Scrolling

The scrolling is not smooth i tried to use the exact example in the repository.

Using Picasso to load images resets RecyclerView position to 1

I'm using Picasso to load images into my ImageView. When I scroll, the position of the RecyclerView constantly gets reset to 1. Here is my code setting up the RecyclerView and FanLayoutManager.

private void setupRecyclerView(){
        mPokemonListAdapter = new PokemonListAdapter(new ArrayList<PokemonListItem>(), getContext());

        FanLayoutManagerSettings fanLayoutManagerSettings = FanLayoutManagerSettings
                .newBuilder(getContext())
                .withFanRadius(true)
                .withAngleItemBounce(5)
                .withViewHeightDp(400)
                .withViewWidthDp(300)
                .build();

        FanLayoutManager fanLayoutManager = new FanLayoutManager(getContext(), fanLayoutManagerSettings);
        mPokemonRecyclerView.setLayoutManager(fanLayoutManager);
        mPokemonRecyclerView.setAdapter(mPokemonListAdapter);
        mPokemonRecyclerView.setHasFixedSize(true);
        mPokemonRecyclerView.setDrawingCacheEnabled(true);
        mPokemonRecyclerView.setItemViewCacheSize(30);
        mPokemonRecyclerView.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_LOW);
    }

And here, I use Picasso in my ViewHolder:

class ListViewHolder extends RecyclerView.ViewHolder {
        private final String LOG_TAG = ListViewHolder.class.getSimpleName();
        TextView mIdTextView;
        TextView mNameTypeTextView;
        CircleImageView mArtworkImageView;
        CardView mCardView;
        TextView mDescriptionTextView;

        final String defaultBackgroundColor = "#FFFFFF";  //White: default CardView background color

        public ListViewHolder(View view) {
            super(view);
            mIdTextView = (TextView) view.findViewById(R.id.pokemon_list_item_id_textview);
            mNameTypeTextView = (TextView) view.findViewById(R.id.pokemon_list_item_name_type_textview);
            mArtworkImageView = (CircleImageView) view.findViewById(R.id.pokemon_list_item_artwork_imageview);
            mCardView = (CardView) view.findViewById(R.id.pokemon_list_item_cardview);
            mDescriptionTextView = (TextView) view.findViewById(R.id.pokemon_list_item_description_textview);
        }

        public void bind(@NonNull PokemonListItem pokemon) {
            mIdTextView.setText("#" + pokemon.getId());
            StringBuilder nameType = new StringBuilder(String.format("%s \n%s", pokemon.getName(), pokemon.getType1()));
            if (pokemon.getType2() != null)
                nameType.append(String.format("/%s", pokemon.getType2()));
            mNameTypeTextView.setText(nameType.toString());
            mDescriptionTextView.setText(pokemon.getDescription());
            Log.v(LOG_TAG, "Grabbing artwork.");
            PokemonRepositories.getInMemoryPokemonRepository()
                    .getArtworkUri(pokemon.getId(), new PokemonRepository.GetArtworkUriCallback() {
                        @Override
                        public void onArtworkUriLoaded(Uri uri) {
                            updateArtwork(uri);
                        }
                    });
        }

        public void updateArtwork(final Uri artworkUri) {
            Picasso.with(mContext).cancelRequest(mArtworkImageView);
            Picasso.with(mContext)
                    .load(artworkUri.toString())
                    .fit().centerCrop()
                    .noPlaceholder()
                    .into(mArtworkImageView, new Callback() {
                        @Override
                        public void onSuccess() {
                            //Update drawable color asynchronously
                            Bitmap imageBitmap = ((BitmapDrawable) mArtworkImageView.getDrawable()).getBitmap();
                            Palette.from(imageBitmap).generate(new Palette.PaletteAsyncListener() {
                                @Override
                                public void onGenerated(Palette palette) {
                                    mCardView.setBackgroundColor(palette.getMutedColor(Color.parseColor(defaultBackgroundColor)));
                                }
                            });
                        }

                        @Override
                        public void onError() {
                            String errorMessage = String.format("ERROR: Could not load image with URI %s", artworkUri);
                            Log.e(LOG_TAG, errorMessage);
                        }
                    });
        }
    }

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.