Cannot scroll RecyclerView inside a Fragment?

孤街浪徒 提交于 2020-01-25 11:49:08

问题


I am having troubles integrating a RecyclerView (using cardviews for the rows) inside a fragment. For some reason I cannot scroll the card view? Please, any suggestions?

This is my app design:

This is my fragment code:

public class PageFragment2 extends Fragment {
public static final String ARG_PAGE2 = "ARG_PAGE";
private int mPage2;

public static PageFragment2 newInstance(int page) {
    Bundle args = new Bundle();
    args.putInt(ARG_PAGE2, page);
    PageFragment2 fragment = new PageFragment2();
    fragment.setArguments(args);
    return fragment;
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mPage2 = getArguments().getInt(ARG_PAGE2);

    Log.d("MainActivity", "onCreate" + mPage2);
}

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

    RecyclerView recList = (RecyclerView) view;
    recList.setHasFixedSize(true);
    LinearLayoutManager llm = new LinearLayoutManager(getActivity());
    recList.setLayoutManager(llm);

    ArrayList<String> names = new ArrayList<>();
    names.add("Georgi Koemdzhiev");
    names.add("Mariya Menova");
    names.add("Simeon Simeonov");
    names.add("Ivan Dqkov");
    names.add("Dymityr Vasilev");
    names.add("Petar Dimov");
    CardAdapter adapter = new CardAdapter(names);

    recList.setAdapter(adapter);
    Log.d("MainActivity","onCreateView" + mPage2);
    return view;
}
}

This is my fragment XML code:

<android.support.v7.widget.RecyclerView
android:id="@+id/cardList"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="true"
xmlns:android="http://schemas.android.com/apk/res/android"/>

My activity_main layout:

<android.support.design.widget.CoordinatorLayout
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"
android:fitsSystemWindows="true"
tools:context="koemdzhiev.com.newtablayouttest.MainActivity">

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/AppTheme.AppBarOverlay">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/AppTheme.PopupOverlay"/>

    <android.support.design.widget.TabLayout
        android:id="@+id/sliding_tabs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="0px"
        android:layout_weight="1"
        android:background="@android:color/white" />

</android.support.design.widget.AppBarLayout>

<include layout="@layout/content_main"/>


回答1:


The Activity from the "Tabbed Activity" template, which contains the ViewPager which is containing your Fragment, uses an AppBarLayout.

This AppBarLayout is stealing the vertical movement, since it doesn't know there's a scrollable nested view (the RecyclerView) inside the ViewPager. Remove the AppBarLayout from the XML file of your Activity (you can take the TabLayout and ToolBar to the upper level).



来源:https://stackoverflow.com/questions/34831320/cannot-scroll-recyclerview-inside-a-fragment

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!