滚动RecyclerView同时垂直和水平

时间:2017-11-09 15:10:42

标签: android android-recyclerview

我想制作一个像视图一样的电子表格来显示一些数据。到目前为止,这就是我所拥有的,但我只能一次滚动一个方向。我希望能够同时水平和垂直滚动。

现在我在水平滚动视图中有一个recyclerView。

<HorizontalScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/change_log_rv"
        android:layout_width="wrap_content"
        android:layout_height="match_parent">
    </android.support.v7.widget.RecyclerView>

</HorizontalScrollView>

这是我的recyclerView行布局。

<TableLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/change_log_table_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?android:attr/selectableItemBackground"
    android:clickable="true"
    android:focusable="true">

<TableRow>

    <TextView
        android:id="@+id/change_log_flavor_name"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:layout_margin="4dp"
        android:gravity="center_horizontal"
        android:maxLines="3"
        android:textSize="16sp"/>

    <View
        android:layout_width="0.5dp"
        android:layout_height="match_parent"
        android:background="@android:color/darker_gray"/>

    <TextView
        android:id="@+id/change_log_batch_number"
        android:layout_width="75dp"
        android:layout_height="wrap_content"
        android:layout_margin="4dp"
        android:gravity="center_horizontal"
        android:maxLines="3"
        android:textSize="16sp"/>

    <View
        android:layout_width="0.5dp"
        android:layout_height="match_parent"
        android:background="@android:color/darker_gray"/>


    <TextView
        android:id="@+id/change_log_date"
        android:layout_width="110dp"
        android:layout_height="wrap_content"
        android:layout_margin="4dp"
        android:gravity="center_horizontal"
        android:maxLines="3"
        android:textSize="16sp"/>

    <View
        android:layout_width="0.5dp"
        android:layout_height="match_parent"
        android:background="@android:color/darker_gray"/>

    <TextView
        android:id="@+id/change_log_number_of_blocks"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:layout_margin="4dp"
        android:gravity="center_horizontal"
        android:maxLines="3"
        android:textSize="16sp"/>

    <View
        android:layout_width="0.5dp"
        android:layout_height="match_parent"
        android:background="@android:color/darker_gray"/>

    <TextView
        android:id="@+id/change_log_time"
        android:layout_width="75dp"
        android:layout_height="wrap_content"
        android:layout_margin="4dp"
        android:gravity="center_horizontal"
        android:maxLines="3"
        android:textSize="16sp"/>

</TableRow>

<View
    android:layout_width="match_parent"
    android:layout_height="0.5dp"
    android:background="@android:color/darker_gray"/>
</TableLayout>

这是我在Java中设置recyclerView的地方。

LinearLayoutManager layoutManager = new LinearLayoutManager(this);
mChangeLogRv.setLayoutManager(layoutManager);
mInventoryChangeLogAdapter = new InventoryChangeLogAdapter(null, mFlavorKeyAndName, this);
mChangeLogRv.setAdapter(mInventoryChangeLogAdapter);

任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

RecyclerViewMain Header Layout放入LinearLayout并将LinearLayout放在Horizontal Scrollview内。

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout 
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="5dp">

    <HorizontalScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">

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

        <TableLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:clickable="true"
            android:focusable="true">

            <TableRow>

                <TextView
                    android:id="@+id/change_log_flavor_name"
                    android:layout_width="100dp"
                    android:layout_height="wrap_content"
                    android:layout_margin="4dp"
                    android:gravity="center_horizontal"
                    android:maxLines="3"
                    android:text="1"
                    android:textColor="@color/Black"
                    android:textStyle="bold"
                    android:textSize="16sp"/>

                <View
                    android:layout_width="0.5dp"
                    android:layout_height="match_parent"
                    android:background="@android:color/darker_gray"/>

                <TextView
                    android:id="@+id/change_log_batch_number"
                    android:layout_width="75dp"
                    android:layout_height="wrap_content"
                    android:layout_margin="4dp"
                    android:gravity="center_horizontal"
                    android:maxLines="3"
                    android:text="2"
                    android:textColor="@color/Black"
                    android:textStyle="bold"
                    android:textSize="16sp"/>

                <View
                    android:layout_width="0.5dp"
                    android:layout_height="match_parent"
                    android:background="@android:color/darker_gray"/>


                <TextView
                    android:id="@+id/change_log_date"
                    android:layout_width="110dp"
                    android:layout_height="wrap_content"
                    android:layout_margin="4dp"
                    android:gravity="center_horizontal"
                    android:maxLines="3"
                    android:text="3"
                    android:textColor="@color/Black"
                    android:textStyle="bold"
                    android:textSize="16sp"/>

                <View
                    android:layout_width="0.5dp"
                    android:layout_height="match_parent"
                    android:background="@android:color/darker_gray"/>

                <TextView
                    android:id="@+id/change_log_number_of_blocks"
                    android:layout_width="100dp"
                    android:layout_height="wrap_content"
                    android:layout_margin="4dp"
                    android:gravity="center_horizontal"
                    android:maxLines="3"
                    android:text="4"
                    android:textColor="@color/Black"
                    android:textStyle="bold"
                    android:textSize="16sp"/>

                <View
                    android:layout_width="0.5dp"
                    android:layout_height="match_parent"
                    android:background="@android:color/darker_gray"/>

                <TextView
                    android:id="@+id/change_log_time"
                    android:layout_width="75dp"
                    android:layout_height="wrap_content"
                    android:layout_margin="4dp"
                    android:gravity="center_horizontal"
                    android:maxLines="3"
                    android:text="5"
                    android:textColor="@color/Black"
                    android:textStyle="bold"
                    android:textSize="16sp"/>

                <View
                    android:layout_width="0.5dp"
                    android:layout_height="match_parent"
                    android:background="@android:color/darker_gray"/>

                <TextView
                    android:layout_width="75dp"
                    android:layout_height="wrap_content"
                    android:layout_margin="4dp"
                    android:gravity="center_horizontal"
                    android:maxLines="3"
                    android:text="6"
                    android:textColor="@color/Black"
                    android:textStyle="bold"
                    android:textSize="16sp"/>

            </TableRow>

            <View
                android:layout_width="match_parent"
                android:layout_height="0.5dp"
                android:background="@android:color/darker_gray"/>
        </TableLayout>


    <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/rvOpsStatusList"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:scrollbarStyle="outsideInset"
            android:scrollbars="horizontal" />

        </LinearLayout>

    </HorizontalScrollView>

    </LinearLayout>