如何为listview获取水平滚动和垂直滚动?

时间:2018-06-14 09:36:02

标签: android xml android-layout listview scrollview

lists.xml

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

        <TextView
            android:id="@+id/tv1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginTop="4dp"
            android:textSize="12sp"
            android:textStyle="bold"
            android:textColor="@color/black"/>
        <TextView
            android:id="@+id/tv2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            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_width="0dp"
            android:layout_height="wrap_content"
            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_width="0dp"
            android:layout_height="wrap_content"
            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_width="0dp"
            android:layout_height="wrap_content"
            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_width="0dp"
            android:layout_height="wrap_content"
            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_width="0dp"
            android:layout_height="wrap_content"
            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_width="0dp"
            android:layout_height="wrap_content"
            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_width="0dp"
            android:layout_height="wrap_content"
            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_width="0dp"
            android:layout_height="wrap_content"
            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_width="0dp"
            android:layout_height="wrap_content"
            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_width="0dp"
            android:layout_height="wrap_content"
            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_width="0dp"
            android:layout_height="wrap_content"
            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_width="0dp"
            android:layout_height="wrap_content"
            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_width="0dp"
            android:layout_height="wrap_content"
            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_width="0dp"
            android:layout_height="wrap_content"
            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
    android:id="@+id/product_list_details"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:dividerHeight="3dp"
    android:layout_marginTop="10dp"
    android:layout_below="@+id/card_view_dispatch"/>

In tablet data is coming like this But in mobile data is coming like this

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

我在横向上总共有16个文字视图。

垂直滚动即将到来但水平滚动不会到来。

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

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

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:0)

尝试这种类型的布局:

<?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_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.e2logy.demoapplication.DemoActivity">


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

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="300dp"
            android:background="@color/colorAccent"/>

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


            <android.support.v7.widget.RecyclerView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                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_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

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

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

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

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

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

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

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

答案 1 :(得分:0)

您可以试用此库this

基本上,这个概念很简单,您需要创建一个垂直的Recyclerview,然后在所需位置添加水平回收视图。

我更喜欢使用Recyclerview而非Listviews,它简单且内存效率高

答案 2 :(得分:-1)

为此尝试一个更好的库有很多。 这是我常见的要求,所以你可以得到很多例子。