水平列表视图在scrollview中不起作用?

时间:2015-07-13 06:57:54

标签: android android-layout

水平列表视图不在scrollview内滚动。

这是我的布局:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="#d9d9d9"
    android:orientation="vertical"
    android:scrollbars="none">

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

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/darker_gray"
        android:orientation="vertical">

        <TextView
            android:id="@+id/tv_exclusive_title"
            android:layout_width="fill_parent"
            android:layout_height="25dp"
            android:layout_marginTop="8dp"
            android:gravity="center"
            android:text="Exclusive Launches"
            android:textColor="@android:color/white"
            android:textSize="18dp"
            android:textStyle="bold" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="260dp"
            android:orientation="horizontal">

            <com.hb.HorizontalListView
                android:id="@+id/hlv_home_list"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="8dp"
                android:background="@android:color/darker_gray"
                android:divider="@android:color/transparent" />
        </LinearLayout>

        <TextView
            android:id="@+id/tv_exclusive_barcode"
            android:layout_width="fill_parent"
            android:layout_height="25dp"
            android:layout_marginTop="8dp"
            android:gravity="center"
            android:text="Shop By Department"
            android:textColor="@android:color/white"
            android:textSize="18dp"
            android:textStyle="bold" />


        <android.support.v7.widget.CardView
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_margin="8dp"
            android:background="@android:color/black"
            card_view:cardCornerRadius="8dp">

            <ImageView
                android:id="@+id/iv_list"
                android:layout_width="fill_parent"
                android:layout_height="180dp"
                android:layout_margin="8dp"
                android:scaleType="fitXY"
                android:src="@drawable/ic_launcher" />
        </android.support.v7.widget.CardView>
    </LinearLayout>


    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/darker_gray"
        android:orientation="vertical">

        <TextView
            android:id="@+id/tv_barcode_title"
            android:layout_width="fill_parent"
            android:layout_height="25dp"
            android:layout_marginTop="8dp"
            android:gravity="center"
            android:text="Exclusive on Barcode"
            android:textColor="@android:color/white"
            android:textSize="18dp"
            android:textStyle="bold" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="260dp"
            android:orientation="horizontal">

            <com.hb.HorizontalListView
                android:id="@+id/hlv_barcode_list"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_marginTop="8dp"
                android:background="@android:color/darker_gray"
                android:divider="@android:color/transparent"
                android:listSelector="@null" />
        </LinearLayout>

        <android.support.v7.widget.CardView
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_margin="8dp"
            android:background="@android:color/black"
            card_view:cardCornerRadius="8dp">


            <ImageView
                android:id="@+id/iv_barcode"
                android:layout_width="fill_parent"
                android:layout_height="180dp"
                android:layout_margin="8dp"
                android:scaleType="fitXY"
                android:src="@drawable/ic_launcher" />
        </android.support.v7.widget.CardView>

    </LinearLayout>
</LinearLayout>

我为水平列表视图尝试了这种布局,但是当我尝试滚动水平时,垂直滚动活动并且列表上下移动。我该如何防止这个问题。

4 个答案:

答案 0 :(得分:1)

您不应在其他滚动条视图(如HorizontalListView

中使用可滚动视图(如列表ScrollView

答案 1 :(得分:0)

您应该将水平列表视图设置为固定高度并禁用其上的垂直滚动。您应该使用fill_parent更改match_parent,因为第一个已弃用。

答案 2 :(得分:0)

        <HorizontalScrollView
                android:id="@+id/mygalasaslery"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/txt_desc_comt_adp"
                android:layout_marginBottom="10dp"
                android:layout_marginTop="20dp" >

        <com.hb.HorizontalListView
            android:id="@+id/hlv_barcode_list"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_marginTop="8dp"
            android:background="@android:color/darker_gray"
            android:divider="@android:color/transparent"
            android:listSelector="@null" />
     </HorizontalScrollView>

答案 3 :(得分:0)

以下是这样做的好例子:

http://examples.javacodegeeks.com/android/core/ui/horizontalscrollview/android-horizontalscrollview-example/

这就是你需要做的事情:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <HorizontalScrollView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="50dp" >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >