如何获得列表视图的水平滚动和垂直滚动?

Posted

技术标签:

【中文标题】如何获得列表视图的水平滚动和垂直滚动?【英文标题】:How to get horizontal scrolling along with vertical scrolling for listview? 【发布时间】:2018-11-24 00:58:28 【问题描述】:

lists.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
android:layout_below="@+id/fix_container"
>
<TableLayout
    android:orientation="vertical"
    android:layout_
    android:layout_
    android:shrinkColumns="*"
    android:stretchColumns="*">
    <TableRow>

        <TextView
            android:id="@+id/tv1"
            android:layout_
            android:layout_
            android:layout_marginTop="4dp"
            android:textSize="12sp"
            android:textStyle="bold"
            android:textColor="@color/black"/>
        <TextView
            android:id="@+id/tv2"
            android:layout_
            android:layout_
            android:textSize="12sp"
            android:textColor="@color/black"
            android:layout_toRightOf="@id/tv1"
            android:layout_marginTop="4dp"
            android:textStyle="bold"
            android:layout_marginLeft="10dp"
            android:layout_toEndOf="@id/tv1"
            android:layout_marginStart="10dp" />
        <TextView
            android:id="@+id/tv3"
            android:layout_
            android:layout_
            android:textColor="@color/black"
            android:textSize="12sp"
            android:layout_toRightOf="@id/tv2"
            android:layout_marginTop="4dp"
            android:layout_marginLeft="10dp"
            android:layout_toEndOf="@id/tv2"
            android:layout_marginStart="10dp" />
        <TextView
            android:id="@+id/tv4"
            android:layout_
            android:layout_
            android:textColor="@color/black"
            android:textSize="12sp"
            android:layout_toRightOf="@id/tv3"
            android:layout_marginTop="4dp"
            android:layout_marginLeft="10dp"
            android:layout_toEndOf="@id/tv3"
            android:layout_marginStart="10dp" />
        <TextView
            android:id="@+id/tv5"
            android:layout_
            android:layout_
            android:textColor="@color/black"
            android:textSize="12sp"
            android:layout_toRightOf="@id/tv4"
            android:layout_marginTop="4dp"
            android:layout_marginLeft="10dp"
            android:layout_toEndOf="@id/tv4"
            android:layout_marginStart="10dp" />
        <TextView
            android:id="@+id/tv6"
            android:layout_
            android:layout_
            android:textColor="@color/black"
            android:textSize="12sp"
            android:layout_toRightOf="@id/tv5"
            android:layout_marginTop="4dp"
            android:layout_marginLeft="10dp"
            android:layout_toEndOf="@id/tv5"
            android:layout_marginStart="10dp" />
        <TextView
            android:id="@+id/tv7"
            android:layout_
            android:layout_
            android:textColor="@color/black"
            android:textSize="12sp"
            android:layout_toRightOf="@id/tv6"
            android:layout_marginTop="4dp"
            android:layout_marginLeft="10dp"
            android:layout_toEndOf="@id/tv6"
            android:layout_marginStart="10dp" />

        <TextView
            android:id="@+id/tv8"
            android:layout_
            android:layout_
            android:textColor="@color/black"
            android:textSize="12sp"
            android:layout_toRightOf="@id/tv7"
            android:layout_marginTop="4dp"
            android:layout_marginLeft="10dp"
            android:layout_toEndOf="@id/tv7"
            android:layout_marginStart="10dp" />

        <TextView
            android:id="@+id/tv9"
            android:layout_
            android:layout_
            android:textColor="@color/black"
            android:textSize="12sp"
            android:layout_toRightOf="@id/tv8"
            android:layout_marginTop="4dp"
            android:layout_marginLeft="10dp"
            android:layout_toEndOf="@id/tv8"
            android:layout_marginStart="10dp" />
        <TextView
            android:id="@+id/tv10"
            android:layout_
            android:layout_
            android:textColor="@color/black"
            android:textSize="12sp"
            android:layout_toRightOf="@id/tv9"
            android:layout_marginTop="4dp"
            android:layout_marginLeft="10dp"
            android:layout_toEndOf="@id/tv9"
            android:layout_marginStart="10dp" />
        <TextView
            android:id="@+id/tv11"
            android:layout_
            android:layout_
            android:textColor="@color/black"
            android:textSize="12sp"
            android:layout_toRightOf="@id/tv10"
            android:layout_marginTop="4dp"
            android:layout_marginLeft="10dp"
            android:layout_toEndOf="@id/tv10"
            android:layout_marginStart="10dp" />
        <TextView
            android:id="@+id/tv12"
            android:layout_
            android:layout_
            android:textColor="@color/black"
            android:textSize="12sp"
            android:layout_toRightOf="@id/tv11"
            android:layout_marginTop="4dp"
            android:layout_marginLeft="10dp"
            android:layout_toEndOf="@id/tv11"
            android:layout_marginStart="10dp" />
        <TextView
            android:id="@+id/tv13"
            android:layout_
            android:layout_
            android:textColor="@color/black"
            android:textSize="12sp"
            android:layout_toRightOf="@id/tv12"
            android:layout_marginTop="4dp"
            android:layout_marginLeft="10dp"
            android:layout_toEndOf="@id/tv12"
            android:layout_marginStart="10dp" />
        <TextView
            android:id="@+id/tv14"
            android:layout_
            android:layout_
            android:textColor="@color/black"
            android:textSize="12sp"
            android:layout_toRightOf="@id/tv13"
            android:layout_marginTop="4dp"
            android:layout_marginLeft="10dp"
            android:layout_toEndOf="@id/tv13"
            android:layout_marginStart="10dp" />
        <TextView
            android:id="@+id/tv15"
            android:layout_
            android:layout_
            android:textColor="@color/black"
            android:textSize="12sp"
            android:layout_toRightOf="@id/tv14"
            android:layout_marginTop="4dp"
            android:layout_marginLeft="10dp"
            android:layout_toEndOf="@id/tv14"
            android:layout_marginStart="10dp" />
        <TextView
            android:id="@+id/tv16"
            android:layout_
            android:layout_
            android:textColor="@color/black"
            android:textSize="12sp"
            android:layout_toRightOf="@id/tv15"
            android:layout_marginTop="4dp"
            android:layout_marginLeft="10dp"
            android:layout_toEndOf="@id/tv15"
            android:layout_marginStart="10dp" />

    </TableRow>
</TableLayout>

</RelativeLayout>

我写过这样的listview

 <ListView
    android:id="@+id/product_list_details"
    android:layout_
    android:layout_
    android:dividerHeight="3dp"
    android:layout_marginTop="10dp"
    android:layout_below="@+id/card_view_dispatch"/>

我在我的 CustomListAdapter.java 中设置了 lists.xml

我总共有 16 个横向文本视图。

垂直滚动即将到来,但水平滚动未到来。

那么如何保持水平滚动视图以在手机中正确显示数据。我该怎么做。

如果这不是正确的方法。请建议我另一种方式。 请帮帮我。

任何帮助将不胜感激。

【问题讨论】:

您是否将展位方向添加到您的 linearLayoutManager 中? 没有。如果我需要添加,我该怎么做?@AmineHarbaoui @vishnu 尝试在项目中使用 horixontal 滚动视图并在主文件中使用嵌套滚动视图。在项目布局中,将高度 wrap_content 和所有 textview 宽度设置为 wrap_content 我没有得到你。某种意义上的项目?和主文件在某种意义上?请清楚地告诉我先生@VishvaDave 我已将水平滚动视图添加到项目然后没有数据设置为列表视图。但我仍然没有将nestedscolview 添加到主文件@VishvaDave 【参考方案1】:

你可以试试这个库this

基本上这个概念很简单,你需要创建一个垂直的recyclerview,然后在需要的位置添加一个水平的recyclerview。

我更喜欢 Recyclerview 而不是 Listviews,它既简单又节省内存

【讨论】:

【参考方案2】:

试试这种布局:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.NestedScrollView 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_
    android:layout_
    tools:context="com.e2logy.demoapplication.DemoActivity">


    <LinearLayout
        android:layout_
        android:layout_
        android:orientation="vertical">

        <LinearLayout
            android:layout_
            android:layout_
            android:background="@color/colorAccent"/>

        <HorizontalScrollView
            android:layout_
            android:layout_>


            <android.support.v7.widget.RecyclerView
                android:layout_
                android:layout_
                android:orientation="vertical"
                android:nestedScrollingEnabled="false"
                tools:layoutManager="android.support.v7.widget.LinearLayoutManager"
                tools:layout_behavior="@string/appbar_scrolling_view_behavior"
                tools:listitem="@layout/tmp2"/>
        </HorizontalScrollView>
    </LinearLayout>
</android.support.v4.widget.NestedScrollView>

我的物品文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:layout_
    android:orientation="horizontal">

    <LinearLayout
        android:layout_
        android:layout_
        android:layout_marginRight="10dp"
        tools:background="@tools:sample/avatars" />

    <LinearLayout
        android:layout_
        android:layout_
        android:layout_marginRight="10dp"
        tools:background="@tools:sample/avatars" />

    <LinearLayout
        android:layout_
        android:layout_
        android:layout_marginRight="10dp"
        tools:background="@tools:sample/avatars" />

    <LinearLayout
        android:layout_
        android:layout_
        android:layout_marginRight="10dp"
        tools:background="@tools:sample/avatars" />

    <LinearLayout
        android:layout_
        android:layout_
        android:layout_marginRight="10dp"
        tools:background="@tools:sample/avatars" />

    <LinearLayout
        android:layout_
        android:layout_
        android:layout_marginRight="10dp"
        tools:background="@tools:sample/avatars" />

    <LinearLayout
        android:layout_
        android:layout_
        android:layout_marginRight="10dp"
        tools:background="@tools:sample/avatars" />
</LinearLayout>

【讨论】:

我正在使用列表视图,但您使用了回收站视图。我需要将 listview 更改为 recyclerview。如果是,我需要更换我的适配器@Vishva Dave @vishnu 是的,您需要为此目的使用 recyclerview .. 因为 recyclervirew 允许水平列表.. 还有很多方法可以转换为 recyclerview 搜索出来..【参考方案3】:

为此尝试一个更好的库。 这是我的常见要求,因此您可以获得很多示例。

【讨论】:

你能帮我解决图书馆的链接吗

以上是关于如何获得列表视图的水平滚动和垂直滚动?的主要内容,如果未能解决你的问题,请参考以下文章

滚动列表视图垂直和水平相同的图像

水平 UIScrollView 内部有垂直 UIScrollViews - 滚动外部水平视图时如何防止滚动内部滚动视图?

SwiftUI Drag 事件如何限制仅检测水平/垂直滚动

(垂直)滚动视图包含另一个(水平)滚动视图 - Kivy

UITableView contentInset 使表格视图除了垂直滚动外还水平滚动

如何与作为滚动视图子视图的水平滚动视图交互?