回收者视图项目不滚动?

时间:2018-07-18 09:29:33

标签: android android-layout android-recyclerview nestedrecyclerview

我正在使用Recycler视图,在这里我将三个Recycler视图水平放置在一个布局中。问题是显示了第二个和第三个Recycler视图项,但是即使在内部使用嵌套滚动也无法滚动xml。请建议我如何滚动第二个和第三个回收者视图。

<RelativeLayout
    android:id="@+id/layout_bottom_sheet"
    android:layout_width="match_parent"
    android:layout_height="220dp"
    android:background="@color/color_bottom_sheet"
    android:elevation="@dimen/z_bottom_sheet"
    app:behavior_hideable="true"
    app:behavior_peekHeight="80dp"
    app:layout_behavior="@string/string_bottom_sheet_behavior">
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/rightLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal">
        <LinearLayout
            android:id="@+id/lay1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#ff0000">
            <android.support.v7.widget.RecyclerView
                android:id="@+id/recyclerViewmonth"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
        </LinearLayout>
        <android.support.v4.widget.NestedScrollView
            android:id="@+id/scrollView1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:fillViewport="true"
            android:verticalScrollbarPosition="right">
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
                <LinearLayout
                    android:id="@+id/lay2"
                    android:layout_width="fill_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:background="#00ff00">
                    <android.support.v7.widget.RecyclerView
                        android:id="@+id/recyclerViewdate"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content" />
                </LinearLayout>
            </LinearLayout>
        </android.support.v4.widget.NestedScrollView>
        <LinearLayout
            android:id="@+id/lay3"
            android:layout_width="fill_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#0000ff">
            <android.support.v7.widget.RecyclerView
                android:id="@+id/recyclerViewyear"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
        </LinearLayout>
    </LinearLayout>
    <TextView
        android:id="@+id/text_view_sheet_title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="@dimen/activity_vertical_margin"
        android:text="@string/text_pull_to_show_more"
        android:textSize="@dimen/text_size_medium"
        android:visibility="gone" />
    <TextView
        android:id="@+id/text_view_more_content"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/text_view_sheet_title"
        android:paddingLeft="@dimen/activity_vertical_margin"
        android:paddingRight="@dimen/activity_vertical_margin"
        android:text="@string/text_more_contet_to_user"
        android:textSize="@dimen/text_size_big"
        android:textStyle="bold"
        android:visibility="gone" />
    <Button
        android:id="@+id/btnclick"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/text_view_more_content"
        android:layout_marginLeft="@dimen/activity_vertical_margin"
        android:layout_marginRight="@dimen/activity_vertical_margin"
        android:layout_marginTop="@dimen/activity_vertical_margin"
        android:text="@string/text_click_me"
        android:visibility="gone" />
</RelativeLayout>

// Java

@Override
   protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
   RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerViewmonth);
   RecyclerView recyclerdate = (RecyclerView) findViewById(R.id.recyclerViewdate);
   RecyclerView recycleryear = (RecyclerView) findViewById(R.id.recyclerViewyear);
   ButterKnife.bind(this);
   LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getApplicationContext());
   LinearLayoutManager linearLayoutManagerdate = new LinearLayoutManager(getApplicationContext());
   LinearLayoutManager linearLayoutManageryear = new LinearLayoutManager(getApplicationContext());

   recyclerView.setLayoutManager(linearLayoutManager);
   recyclerdate.setLayoutManager(linearLayoutManagerdate);
   recycleryear.setLayoutManager(linearLayoutManageryear);

   recyclerView.setNestedScrollingEnabled(false);
   recyclerdate.setNestedScrollingEnabled(false);
   recycleryear.setNestedScrollingEnabled(false);

   for (int i = 0; i <= 31; i++) {
       dayList.add(String.valueOf(i));
   }
   CustomAdapter customAdapter = new CustomAdapter(MainActivity.this, monthList);
   recyclerView.setAdapter(customAdapter);


   DayAdapter dayAdapter=new DayAdapter(MainActivity.this,dayList);
   recyclerdate.setNestedScrollingEnabled(false);
   recyclerdate.setAdapter(dayAdapter);
   recyclerdate.setNestedScrollingEnabled(false);

   YearAdapter yearAdapter=new YearAdapter(MainActivity.this,monthList);
   recycleryear.setAdapter(yearAdapter);

3 个答案:

答案 0 :(得分:2)

还要在初始化回收器视图的位置发布Java代码。另外,请尝试从嵌套滚动视图中删除回收站视图(您可以将它们放置在没有嵌套滚动视图的情况下)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/rightLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">
    <LinearLayout
        android:id="@+id/lay1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="#ff0000">
        <android.support.v7.widget.RecyclerView
            android:id="@+id/recyclerViewmonth"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </LinearLayout>
            <LinearLayout
                android:id="@+id/lay2"
                android:layout_width="fill_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="#00ff00">
                <android.support.v7.widget.RecyclerView
                    android:id="@+id/recyclerViewdate"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content" />
            </LinearLayout>
    <LinearLayout
        android:id="@+id/lay3"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="#0000ff">
        <android.support.v7.widget.RecyclerView
            android:id="@+id/recyclerViewyear"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </LinearLayout>
</LinearLayout>

答案 1 :(得分:2)

将所有“回收者”视图保留在“嵌套滚动视图”中。

答案 2 :(得分:0)

将您的父级布局高度更改为match_parent。像

<RelativeLayout
    android:id="@+id/layout_bottom_sheet"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/color_bottom_sheet"
    android:elevation="@dimen/z_bottom_sheet"
    app:behavior_hideable="true"
    app:behavior_peekHeight="80dp"
    app:layout_behavior="@string/string_bottom_sheet_behavior">


</RelativeLayout>