如何获得列表视图的水平滚动和垂直滚动?
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 - 滚动外部水平视图时如何防止滚动内部滚动视图?