我无法滚动一个片段的recyclerView

时间:2017-10-19 12:25:33

标签: android android-fragments android-recyclerview recyclerview-layout

我在Sliding标签布局中有6个片段。所有这些都在其中实现了RecyclerView。我填充了RecyclerView。但我其中一个片段不允许我滚动,但其余的工作正常。

见下面的gif:

This is my problem

Genres.java

public class Genres extends Fragment {


private static final String TAG = "Genres";
RecyclerView recyclerView_genre;
GenresAdapter genresAdapter;
ArrayList<GenresModel> Genrelist = new ArrayList<>();
long genreId;
String genreName;
Cursor genrecursor;

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.genres_activity, container, false);

    recyclerView_genre = view.findViewById(R.id.recyclerView_genre);
    recyclerView_genre.setHasFixedSize(true);
    LinearLayoutManager genreLayout = new LinearLayoutManager(getContext());
    recyclerView_genre.setLayoutManager(genreLayout);




    String[] proj1 = {MediaStore.Audio.Genres.NAME, MediaStore.Audio.Genres._ID};


    genrecursor=getActivity().getContentResolver().query(MediaStore.Audio.Genres.EXTERNAL_CONTENT_URI,proj1,null, null, null);

    if (genrecursor != null) {
        if (genrecursor.moveToFirst()) {
            do {

                genreId = genrecursor.getLong(genrecursor.getColumnIndexOrThrow(MediaStore.Audio.Genres._ID));
                genreName = genrecursor.getString(genrecursor.getColumnIndexOrThrow(MediaStore.Audio.Genres.NAME));

                GenresModel genresModel = new GenresModel(genreId,genreName );
                Genrelist.add(genresModel);



                Collections.sort(Genrelist, new Comparator<GenresModel>() {
                    @Override
                    public int compare(GenresModel lhs, GenresModel rhs) {
                        return lhs.getGenreName().compareTo(rhs.getGenreName());
                    }
                });

            } while (genrecursor.moveToNext());
        }

    }
    genrecursor.close();





    genresAdapter = new GenresAdapter(getContext(),Genrelist);
    recyclerView_genre.setAdapter(genresAdapter);
    genresAdapter.notifyDataSetChanged();

    return view;
}

GenresAdapter.java

public class GenresAdapter extends RecyclerView.Adapter<GenresAdapter.GenresHolder> {

Context gContext;
ArrayList<GenresModel>  GenreList = new ArrayList<>();

public GenresAdapter(Context gContext, ArrayList<GenresModel> genreList) {
    this.gContext = gContext;
    GenreList = genreList;
}

@Override
public GenresAdapter.GenresHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view3 = LayoutInflater.from(gContext).inflate(R.layout.row_genre, parent, false);
    return new GenresHolder(view3);
}

@Override
public void onBindViewHolder(GenresAdapter.GenresHolder holder, int position) {

    final GenresModel genresModel1 = GenreList.get(position);

    holder.genreText.setText( genresModel1.getGenreName());

}

@Override
public int getItemCount() {
    return GenreList.size();
}

public class GenresHolder extends RecyclerView.ViewHolder {

    TextView genreText;

    public GenresHolder(View itemView) {
        super(itemView);

        genreText = itemView.findViewById(R.id.genreText);
    }
}
}

activity_genre.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">



<android.support.v7.widget.RecyclerView
   android:id="@+id/recyclerView_genre"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:paddingTop="130dp"
   >

</android.support.v7.widget.RecyclerView>

</LinearLayout>

row_genre.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginStart="10dp"
android:paddingTop="35dp"
>

<TextView
    android:id="@+id/genreText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textColor="#ffffff"
    android:textSize="14sp"
    />

</LinearLayout>

1 个答案:

答案 0 :(得分:0)

我自己找到了解决方案。实际上问题在于viewpager转换。我将https://github.com/geftimov/android-viewpager-transformers/wiki/CubeOutTransformer应用于我的viewpager,由于某种原因,我的前三个片段正在工作,其余的都没有!