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

Posted

技术标签:

【中文标题】滚动列表视图垂直和水平相同的图像【英文标题】:Scroll listview vertical and horizontal same image 【发布时间】:2014-05-02 23:55:39 【问题描述】:

我想要设计布局和我附加的图片一样,这个列表视图可以水平和垂直滚动。我通过gridview创建标题A B C,但没有在其余部分添加列表视图。

图片:

【问题讨论】:

我不太清楚您的问题:您能否再解释一下您的期望,您尝试了什么以及现在的行为是什么? 我想创建演示 UI 相同的图像附加,我使用了滚动视图、网格视图和列表视图,但我通过 gridview 创建标题(类似 ABC 的图像),部分“内容 A”...我通过 listview 创建,但我不加入他们 【参考方案1】:

据我了解,您尝试将ListViewScrollViewGridView 另一个 GridView 设置为水平滚动的HeaderView。似乎添加了几个有自己处理滚动事件的小部件。不知道这是否可能。

尝试另一种方式,将您的 GridView 更改为 HorizontalScrollView 并将您的视图 A、B、C.. 放入其中。

<HorizontalScrollView
    android:layout_ 
    android:layout_ 
    android:orientation="horizontal" >

        Here, your views A, B, C...

</HorizontalScrollView>

查看此简单布局的示例:Scrollabale listview in both direction with header using Horizontal scrollview。

然后,如果您想滚动内容但保持标题部分固定,请尝试使用 ViewGroup 容器(在 LinearLayout、RelativeLayout 或其他内容中)在您的内容上方添加此布局,其中包含:

<RelativeLayout
    ... >
    <include 
        android:layout="@layout/layout_horizontal_scrollview"
        ... >
    <ListView
        ... >
</RelativeLayout>

这应该可以解决问题..

但是,如果您希望标题部分同时滚动到您的内容,请尝试将此布局添加为HeaderView (我刚刚尝试过,它有效)

    为标题创建一个HorizontalScrollView

    <HorizontalScrollView
        android:layout_ 
        android:layout_ 
        android:orientation="horizontal" >
        Here, your views A, B, C...
    </HorizontalScrollView>  
    

    将此布局膨胀为HeaderView

    View header = View.inflate(this, R.layout.layout_horizontal_scrollview, null);
    listview.addHeaderView(header);
    

注意:将HeaderView 添加到 GridView 是不可能的,您可以使用特殊的适配器(如 HFGridView)来做到这一点。

【讨论】:

这个有效,刚试了! headerview 具有水平滚动,而您的列表具有垂直滚动,并且您的标题与内容一起滚动。你用 addHeaderView 给 Horizo​​ntalScrollView 充气,它就可以工作了。【参考方案2】:

将它们(GridViewListView)组合成 RelativeLayout 或垂直方向的 LinearLayout,这样:

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

<GridView
    android:id="@+id/gridview"
    android:layout_
    android:layout_ >

<ListView
    android:id="@+id/listview"
    android:layout_
    android:layout_
    android:layout_below="@id/gridview" >

</RelativeLayout>

通过将数据设置到适配器以编程方式将项目添加到 ListView。

编辑(启用垂直和水平滚动): 试试这个How can I make my layout scroll both horizontally and vertically?。

【讨论】:

但不是垂直滚动和水平滚动 您的意思是要同时滚动它们? 您在HorizontalScrollViewScrollView 中的布局中的视图就是答案。检查上面的编辑。 @ghoshak OP 想要一个滚动标题而不是可滚动的内容。这不是一个好习惯,您可以在链接上方的 cmets 上阅读:***.com/a/4492050/2668136 @user3401211 如果您只想滚动(双向)标题而不滚动其下方的内容,您可以仅将 GridView 包装在 Horizo​​ntalScrollView 和 ScrollView 中。当我得到 GridView 是标题而 ListView 是你的内容。

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

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

两个 ScrollView 在彼此之上?

如何制作水平和垂直滚动的二维图片库?

UIScrollview在垂直和水平ios中滚动

在 UIScrollView 中加载下一个图像视图

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