我正在使用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);
答案 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>