我正在使用GridView创建一个组件来创建像Excel这样的表。在这里,我最初创建了一个2x2网格,稍后当用户单击按钮时,会添加额外的行和列。
这是我添加新专栏的做法:-
int numColumns = GVParticipantTable.getNumColumns() + 1;
double numRows = Math.ceil((double) GVParticipantTable.getCount() / (double) GVParticipantTable.getNumColumns());
int totalItems = (int) numRows * numColumns;
if (participantDataList.size() > 4)
{
totalItems = totalItems - participantDataList.size();
}
for (int i = 0; i < totalItems; i++)
{
participantDataList.add("");
}
GVParticipantTable.setNumColumns(numColumns);
mAdapterParticipantTable.notifyDataSetChanged();
这可以正常工作并添加额外的列。问题是当添加列时,以前的列会收缩以适应新列,从而使每次添加新列时列看起来更小。我想一次只在屏幕上显示2列,然后让用户水平向前滚动以查看更多列。现在网格只能垂直滚动。同样,我希望在添加新行时发生这种情况,用户应该能够垂直滚动以查看更多行。
据我所知,您不应该将水平滚动视图与ListView一起使用,因为ListView负责自己的滚动。最重要的是,这样做会破坏ListView中处理大型列表的所有重要优化,因为它有效地迫使ListView显示其整个项目列表,以填满HorizontalScrollView提供的无限容器。
http://developer.android.com/reference/android/widget/HorizontalScrollView.html
由于您可能被迫使用二维滚动视图,您可以考虑使用以下内容:博客的Internet存档。峡谷。us/2010/06/android二维滚动视图
我没有使用这个方法,但这可能是一个合理的方法。
也许可以尝试将其添加到您的XML文件和JAVA中
<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scrollHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ScrollView
android:id="@+id/scrollVertical"
android:layout_width="wrap_content"
android:layout_height="match_parent" >
//WateverViewYouWant
</ScrollView>
</HorizontalScrollView>
以及onCreate/onCreateView代码
final HorizontalScrollView hScroll = (HorizontalScrollView) value.findViewById(R.id.scrollHorizontal);
final ScrollView vScroll = (ScrollView) value.findViewById(R.id.scrollVertical);
vScroll.setOnTouchListener(new View.OnTouchListener() { //inner scroll listener
@Override
public boolean onTouch(View v, MotionEvent event) {
return false;
}
});
hScroll.setOnTouchListener(new View.OnTouchListener() { //outer scroll listener
private float mx, my, curX, curY;
private boolean started = false;
@Override
public boolean onTouch(View v, MotionEvent event) {
curX = event.getX();
curY = event.getY();
int dx = (int) (mx - curX);
int dy = (int) (my - curY);
switch (event.getAction()) {
case MotionEvent.ACTION_MOVE:
if (started) {
vScroll.scrollBy(0, dy);
hScroll.scrollBy(dx, 0);
} else {
started = true;
}
mx = curX;
my = curY;
break;
case MotionEvent.ACTION_UP:
vScroll.scrollBy(0, dy);
hScroll.scrollBy(dx, 0);
started = false;
break;
}
return true;
}
});
好吧,这里你是下一篇关于固定页眉和页脚的无聊滚动表的文章。这个主题来自超文本标记语言的刚性结构。源问题是显示非常巨大的表格溢出屏幕宽度作为高度。我的愿望也是将标题固定在表格的顶部,因此将其副本固定在表格的底部。 在大量搜索和测试保证代码后,我发现了下一个深层嵌套问题:-页眉和页脚没有保持表体的单元格间距,而tbody是单独滚动的-tbody行覆盖了页眉-tbody的垂直滚动很难与整个表(包括页眉和
问题内容: 如标题中所述,我一直在尝试通过水平滚动设置某种垂直流布局。布局中的组件将是JLabels。让我画一幅画: 同一窗口,垂直扩展 因此,标签将填充可用的垂直空间,然后创建一个新列。一旦可用的水平空间用尽,就会出现一个 水平 滚动条。 垂直滚动条通常不应出现;但是,如果窗口的垂直高度异常小,最好有一个垂直滚动条。 任何帮助是极大的赞赏。我是Java的新手,所以任何其他解释都将是很棒的。谢谢!
我想制作一个类似视图的电子表格来显示一些数据。到目前为止,这是我所拥有的,但我一次只能滚动一种方式。我希望能够同时水平和垂直滚动。 现在我有一个水平滚动视图内的回收器视图。 这是我的回收器查看行布局。 这是我在Java中设置我的recyclerView的地方。 任何帮助都将不胜感激。谢谢!
我需要具有水平滚动行为的RecyclerView Gridlayout管理器。它必须添加子视图,就像它具有垂直方向时一样(例如(行1,列1)=索引0,(行1,列2)=索引1等等)。 目前垂直方向不允许水平滚动,并且适合设备宽度内的子视图。 编辑: 我在RecyclerView GridLayoutManager中有100行和150列,需要水平滚动视图。我隐藏和显示行,这只有在垂直方向上才可能。
我在一个大型遗留系统中工作,系统中有数千个页面,动态生成的表格数据被填充到html中,定义格式如下: 我的任务是移除不必要的小水平滚动条,这些滚动条似乎使系统感到困惑。经过一段时间的研究,我意识到当表格数据量垂直溢出包含的div并导致垂直滚动条出现时,新生成的垂直滚动条本身会推入div的内容区域,从而导致表格数据水平溢出,从而导致不希望出现的水平滚动条。换句话说,当垂直滚动条出现时,它会侵入内容空
我在一个大型遗留系统中工作,系统中有数千个页面,动态生成的表格数据被填充到html中,定义格式如下: 我的任务是移除不必要的小水平滚动条,这些滚动条似乎使系统感到困惑。经过一段时间的研究,我意识到当表格数据量垂直溢出包含的div并导致垂直滚动条出现时,新生成的垂直滚动条本身会推入div的内容区域,从而导致表格数据水平溢出,从而导致不希望出现的水平滚动条。换句话说,当垂直滚动条出现时,它会侵入内容空