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

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

图片:

【问题讨论】:

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

标签: android listview scroll


【解决方案1】:

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

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

<HorizontalScrollView
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    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 (我刚刚尝试过,它有效)

  1. 为标题创建一个HorizontalScrollView

    <HorizontalScrollView
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:orientation="horizontal" >
        Here, your views A, B, C...
    </HorizontalScrollView>  
    
  2. 将此布局膨胀为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_width="fill_parent"
    android:layout_height="fill_parent" >

<GridView
    android:id="@+id/gridview"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

<ListView
    android:id="@+id/listview"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/gridview" >

</RelativeLayout>

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

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

【讨论】:

  • 但不是垂直滚动和水平滚动
  • 您的意思是要同时滚动它们?
  • 您在HorizontalScrollViewScrollView 中的布局中的视图就是答案。检查上面的编辑。
  • @ghoshak OP 想要一个滚动标题而不是可滚动的内容。这不是一个好习惯,您可以在链接上方的 cmets 上阅读:stackoverflow.com/a/4492050/2668136
  • @user3401211 如果您只想滚动(双向)标题而不滚动其下方的内容,您可以仅将 GridView 包装在 Horizo​​ntalScrollView 和 ScrollView 中。当我得到 GridView 是标题而 ListView 是你的内容。
猜你喜欢
  • 2015-08-04
  • 1970-01-01
  • 1970-01-01
  • 2012-07-31
  • 1970-01-01
  • 1970-01-01
  • 2015-12-21
  • 2018-11-24
相关资源
最近更新 更多