Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:数据列表与其他组件一起滚动_Android_Listview_Scrollview - Fatal编程技术网

Android:数据列表与其他组件一起滚动

Android:数据列表与其他组件一起滚动,android,listview,scrollview,Android,Listview,Scrollview,我正在尝试显示android活动中的数据列表。通常情况下,任何人都会使用一个简单的ListView来实现这一点,我以前使用过很多次。但是现在我有一个固定页眉和页脚的应用程序,中间部分(内容)在页眉和页脚下面滚动。在中间部分,我想在数据列表的上方和下方添加其他组件,但整个部分必须是可滚动的。我尝试向listview添加组件(如按钮、textview等),但Eclipse中的布局生成器不允许我这样做 所以我开始使用ScrollView,您可以轻松添加任何您喜欢的组件。但我不允许在ScrollView

我正在尝试显示android活动中的数据列表。通常情况下,任何人都会使用一个简单的ListView来实现这一点,我以前使用过很多次。但是现在我有一个固定页眉和页脚的应用程序,中间部分(内容)在页眉和页脚下面滚动。在中间部分,我想在数据列表的上方和下方添加其他组件,但整个部分必须是可滚动的。我尝试向listview添加组件(如按钮、textview等),但Eclipse中的布局生成器不允许我这样做

所以我开始使用ScrollView,您可以轻松添加任何您喜欢的组件。但我不允许在ScrollView中添加ListView,我可以理解这会产生奇怪的效果(因为两者都可以滚动)

接下来,我想使用TableLayout动态添加TableRows,但在多个网站上,这被认为是缓慢的,而且“不是这样做的”。我也找不到一种优雅的方式在每一项之间添加分隔符。使用ListView,这一切都很容易完成

下图可能最多只能解释我想要的效果:

带有“table Data”标题的表可能有很多项,因此长度可能非常大。我不想要的是表格有一个固定的大小,并且表格中的项目可以滚动。我实际上希望表的大小增加,因此包含表的ScrollView也应该增加。我还希望表格上方的信息框可以滚动(与以后可能添加的任何其他组件一样)


实现此效果的最佳方法是什么?

您可以使用包含静态页眉和页脚的简单垂直线性布局(或相对布局),并在它们之间使用列表视图。您可以在ListView上设置页眉和页脚视图,以添加可滚动的页眉和页脚内容。为简化示例,以下是线性布局方式:

 <LinearLayout android:orientation="vertical" 
               android:layout_height="match_parent"
               android:layout_width="match_parent">
      <!--static header content... can be any kind of view-->
      <TextView 
               android:layout_width="match_parent"
               android:layout_weight="0"
               android:layout_height="wrap_content"/>
      <ListView 
               android:id="@+id/list"
               android:layout_width="match_parent"
               android:layout_height="0dp"
               android:layout_weight="1"/>

      <!--static footer content... can be any kind of view-->
      <TextView 
               android:layout_width="match_parent"
               android:layout_weight="0"
               android:layout_height="wrap_content"/>
 </LinearLayout>
和ListView.addFooterView应允许您将其他静态视图(其内容可以动态更新)添加到ListView的顶部或底部:

自:API级别1添加一个固定视图以显示在列表顶部。 如果多次调用addHeaderView,则视图将显示在中 他们被添加的顺序。使用此调用添加的视图可以获得焦点 如果他们愿意的话

注意:在调用setAdapter之前调用此函数。这就是ListView可以做到的 将提供的游标与一个也将用于标题的游标包装在一起 和页脚视图


我已经有一个垂直线性布局作为根布局。页眉和页脚已经修复,这不是问题所在,如果您理解这一点,我很抱歉。我的问题是关于中间部分的:无论数据表的长度如何,整个部分都必须是可滚动的。我希望中间部分(这是一个滚动视图)中的所有组件都可以滚动。我认为您可以通过ListView.addHeaderView和ListView.addFooterView来实现这一点。请参阅此处的文档:…愚蠢的链接格式化程序。。。我实际上无法链接到该函数:(在这里你可以找到一个新的图像。这个图像应该是在滚动中间部分之后的样子。正如你所看到的,上面的数据表和信息框都在滚动。总的来说,这是非常常见的做法,但在这种情况下,我在ScrollView中有一个日期列表,其中可以包含随机数目的日期。I无法使用ListView,因为它不允许我添加其他组件(如infobox)。所以我的问题是如何获得这种效果?我建议使用TableLayout,但一些网站说它“不是这样做的”而且速度慢。我建议两件事:首先,addHeaderView和addFooterView可以按照您的意愿进行操作。您可以有多个页眉或页脚视图,它们都将在列表中的数据之前+之后滚动。您可以将使用所有信息框+表数据作为标题视图标题。列表条目将是日期行,页脚将是按钮。这有意义吗?如果这不能起作用,我认为TableLayout主要是为这种情况设计的,特别是如果其中没有太多数据的话。在这种情况下,我在listview中使用页眉和页脚视图。这是否意味着ader和footer将随列表一起滚动。因此,当您开始滚动列表时,页眉将消失,而页脚仅显示在列表的末尾?
ListView theList = (ListView)findViewById(R.id.list);

// example of creating header and footer views from inflation or by instantiation in code
View myHeaderView = getLayoutInflater().inflate(R.layout.myHeaderLayout,theList,false);
View myFooterView = new TextView(this, some layout params);

theList.addHeaderView(myHeaderView); 
theList.addFooterView(myFooterView); 
public void addHeaderView (View v)