How can I make horizontally scrollable items in a vertical listview?

后端 未结 4 1926
耶瑟儿~
耶瑟儿~ 2021-01-05 13:50

I would like to use horizontall scrolling items in a vertically scrolling Listview.

My naive take on this was to put the contents of the listview items inside a scro

相关标签:
4条回答
  • 2021-01-05 14:26

    Make ordinary ListView with any adapter you like but design the item Layout something like this:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
    
        <HorizontalScrollView
            android:id="@+id/hor_scroll"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
    
            <LinearLayout
                android:id="@+id/lin"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal">
    
                <ImageView
                    android:id="@+id/icon"
                    android:layout_width="wrap_content"
                    android:layout_height="fill_parent"
                    android:layout_marginRight="6.0dip"
                    android:layout_alignParentTop="true"
                    android:layout_alignParentBottom="true"
                    android:focusable="false" />
    
                <TextView
                    android:textAppearance="?android:textAppearanceMedium"
                    android:gravity="center_vertical"
                    android:id="@+id/text"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:singleLine="true"
                    android:layout_toRightOf="@id/icon"
                    android:layout_alignParentTop="true"
                    android:layout_alignParentBottom="true" />
    
            </LinearLayout>
    
        </HorizontalScrollView>
    
    
    </RelativeLayout>
    

    You'll have Vertically Scrollable ListView with Horizontally Scrollable items. And the items are scrolled independantly from other items.

    0 讨论(0)
  • 2021-01-05 14:28

    You need to use a HorizontalScrollView. Droidstack is an open source app (I wrote) that does just this (in the questions lists you can scroll the tags on each question), if you want a concrete example.

    0 讨论(0)
  • 2021-01-05 14:29

    if you follow the good practices of android development, you should never put a ScrollView inside a ListView, is unrecomended bu Romain Guy and other people from android development, to read the arguments read here: Android ScrollView layout problem

    from the android docs:

    "You should never use a HorizontalScrollView with a ListView, since ListView takes care of its own scrolling. Most importantly, doing this defeats all of the important optimizations in ListView for dealing with large lists, since it effectively forces the ListView to display its entire list of items to fill up the infinite container supplied by HorizontalScrollView."

    EDIT: it seems that the warning posted above is an error from the android documentation, talking with some colleagues they told me its possible. The issue in the documentation is here, http://code.google.com/p/android/issues/detail?id=2781.

    my appologies

    0 讨论(0)
  • 2021-01-05 14:30

    You can use "ViewPager" each element in the list can be a ViewPager

    0 讨论(0)
提交回复
热议问题