只有在cardview height_layout为match_parent时,recyclerview scrolltoposition才有效

时间:2018-07-26 05:30:24

标签: android-recyclerview android-cardview

我在以下布局中使用了recyclerview:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical">


    <android.support.v7.widget.RecyclerView
        android:id="@+id/rvmain"
        android:scrollbars="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</LinearLayout>

以下是itemview:

<android.support.v7.widget.CardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/cv">

    <com.alexvasilkov.gestures.views.GestureImageView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/gestureimage"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
    android:adjustViewBounds="true" />

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

此处 android:layout_height="wrap_content" 进行卡片查看

使用上面的代码,scrolltoposition不起作用,它从头开始。

哪里

<android.support.v7.widget.CardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    **android:layout_height="match_parent"**
    android:id="@+id/cv">

    <com.alexvasilkov.gestures.views.GestureImageView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/gestureimage"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
    android:adjustViewBounds="true" />

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

此处 android:layout_height="match_parent" 进行卡片查看

与上面的scrolltopositon一起工作,但是在这里cardview占据了整个屏幕。滚动我不想要的图像时,图像之间会存在间隙

以下是我的recyclerview代码:

    mRecyclerView = findViewById(R.id.rvmain);
    mLayoutManager = new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false);
    mRecyclerView.setLayoutManager(mLayoutManager);
    mAdapter = new MainActivityRVAdapter(myImageList,MainActivity.this);
    mRecyclerView.setAdapter(mAdapter);
    mRecyclerView.scrollToPosition(position);

我观察到的是调试时:

如果其wrap_content。适配器一开始会加载所有内容。

0 个答案:

没有答案