Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android studio的屏幕中使用recycler视图和相对布局_Android_Android Recyclerview - Fatal编程技术网

如何在android studio的屏幕中使用recycler视图和相对布局

如何在android studio的屏幕中使用recycler视图和相对布局,android,android-recyclerview,Android,Android Recyclerview,我有一个“回收器”视图和“回收器”视图下方的相对布局。我的相对布局由三个文本视图组成。我的回收器视图由三个文本视图和一个按钮组成。我的问题是回收器视图是单独滚动的,相对布局中的文本视图是固定的。但我想两者都被滚动,这意味着在滚动屏幕时,滚动应该同时针对回收器视图和相对布局进行,但不能单独进行。滚动时,我的相对布局应附加到回收器视图的末尾。我已经搜索了很多这样做,但没有我的搜索结果。因此,这里结束了,请任何人帮帮我。为了让您的RelativeLayout与您的RecyclerView的内容一起滚动

我有一个“回收器”视图和“回收器”视图下方的相对布局。我的相对布局由三个文本视图组成。我的回收器视图由三个文本视图和一个按钮组成。我的问题是回收器视图是单独滚动的,相对布局中的文本视图是固定的。但我想两者都被滚动,这意味着在滚动屏幕时,滚动应该同时针对回收器视图和相对布局进行,但不能单独进行。滚动时,我的相对布局应附加到回收器视图的末尾。我已经搜索了很多这样做,但没有我的搜索结果。因此,这里结束了,请任何人帮帮我。

为了让您的RelativeLayout与您的RecyclerView的内容一起滚动,您需要将带有静态内容的RelativeLayout添加到适配器迭代列表的末尾。然后在适配器中重写,并为RecyclerView中的数据返回一个类型ID,为footer RelativeLayout返回另一个类型ID。然后在中,您将使用视图类型来扩展正确类型的视图—一个绑定数据的视图或另一个显示相对值的视图


这个过程可能是相当劳动密集型的。你也可以考虑使用一个库来帮助你在RealReVIEW中创建一个页脚视图。

< P>为了使你的RelayLayOuto与你的RealVIEW视图的内容一起滚动,你需要将相对静态的内容添加到你的适配器迭代的列表的末尾。然后在适配器中重写,并为RecyclerView中的数据返回一个类型ID,为footer RelativeLayout返回另一个类型ID。然后在中,您将使用视图类型来扩展正确类型的视图—一个绑定数据的视图或另一个显示相对值的视图


这个过程可能是相当劳动密集型的。你也可以考虑使用一个库来帮助你在RevieView中创建一个页脚视图。

< P>你可以在不同的布局中添加带有文本视图的视图,并添加到你的回收器中作为最后一个元素。然后检查getItemViewType中的Position,以及它是否最后返回RecyclerAdapter中的页脚类型

private static final int FOOTER = 1;
private static final int CHILD = 2;
// inflates the row layout from xml when needed
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    if(viewType == CHILD){
        View view = mInflater.inflate(R.layout.list_item, parent, false);
        return new ViewHolder(view);
    }
    else if(viewType == FOOTER ){
        View view = mInflater.inflate(R.layout.relative, parent, false);
        return new ViewHolder(view);
    }
    return null;
}


@Override
public int getItemViewType(int position) {
    if (position == getItemCount() - 1) {
        return FOOTER;
    } else {
        return CHILD;
    }
}

您可以在不同的布局中添加带有文本视图的视图,并将其作为最后一个元素添加到回收器中。然后检查getItemViewType中的Position,以及它是否最后返回RecyclerAdapter中的页脚类型

private static final int FOOTER = 1;
private static final int CHILD = 2;
// inflates the row layout from xml when needed
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    if(viewType == CHILD){
        View view = mInflater.inflate(R.layout.list_item, parent, false);
        return new ViewHolder(view);
    }
    else if(viewType == FOOTER ){
        View view = mInflater.inflate(R.layout.relative, parent, false);
        return new ViewHolder(view);
    }
    return null;
}


@Override
public int getItemViewType(int position) {
    if (position == getItemCount() - 1) {
        return FOOTER;
    } else {
        return CHILD;
    }
}

您有两个选项,第一个更好的选项是创建页脚ViewHolder并将其作为适配器中的最后一项添加到RecyclerView。 或者,您可以简单地将视图包装在垂直线性布局中,然后将其包装在NestedScrollView中,如下所示:

<android.support.v4.widget.NestedScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <ImageView
            android:id="@+id/image"
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:scaleType="centerCrop" />

        <android.support.v7.widget.RecyclerView
            android:id="@+id/recyclerview"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:nestedScrollingEnabled="false" />
    </LinearLayout>
</android.support.v4.widget.NestedScrollView>

您有两个选项,第一个更好的选项是创建页脚ViewHolder并将其作为适配器中的最后一项添加到RecyclerView。 或者,您可以简单地将视图包装在垂直线性布局中,然后将其包装在NestedScrollView中,如下所示:

<android.support.v4.widget.NestedScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <ImageView
            android:id="@+id/image"
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:scaleType="centerCrop" />

        <android.support.v7.widget.RecyclerView
            android:id="@+id/recyclerview"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:nestedScrollingEnabled="false" />
    </LinearLayout>
</android.support.v4.widget.NestedScrollView>

值得注意的是,当您将RecyclerView设置为android:layout\u height=wrap\u content时,RecyclerView将不再实际回收其视图,而是一次将它们全部膨胀。如果你有少量数据,NestedScrollView路由的设置要简单得多,但不能很好地扩展长列表。值得注意的是,当你将RecyclerView设置为android:layout\u height=wrap\u content时,RecyclerView将不再实际回收其视图,而是一次将它们全部膨胀。如果数据量较小,则NestedScrollView路由的设置要简单得多,但对于长列表来说,它的伸缩性不好。