gpt4 book ai didi

android - ScrollView 内的 ViewPager 内的 ListView

转载 作者:行者123 更新时间:2023-11-29 01:42:51 25 4
gpt4 key购买 nike

我目前正在开发一个基于 iOS 版本的 Android 应用程序,我必须为主菜单实现以下布局:

一个带有几个按钮的顶部集线器,然后是它下面的一个 ViewPager。这个 ViewPager 上面有一个栏(在它本身和中心之间)来显示页面的标题。 ViewPager 内部是一个用于显示文章的 ListView。

预期的滚动行为如下:当您从最顶部向下滚动时,它应该正常滚动并隐藏中心,然后当您滚动到标题栏到达顶部的位置时,它应该捕捉标题栏到位,您应该仍然可以滚动 ListView。

我不知道如何将集线器添加到所有这些中并获得所需的行为。没有集线器,一切都已经实现并正常运行。但我不知道如何添加它并使其工作。

我尝试将所有内容都放在 ScrollView 中,但这似乎不起作用。滚动仍然适用于文章的 ListView,但它不会将中心滚动到一边。

根据大多数人的说法,你永远不应该在另一个元素中包含滚动元素。但我看不出有任何其他方法可以做到这一点。

最佳答案

我在一个 ScrollView 中有多个 ListView ,为了让它工作,我使用以下方法设置每个 ListView 的高度。过去一切正常。

public static void setListViewHeightBasedOnChildren(ListView listView) {
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null)
return;

int desiredWidth = MeasureSpec.makeMeasureSpec(listView.getWidth(),
MeasureSpec.UNSPECIFIED);
int totalHeight = 0;
View view = null;
for (int i = 0; i < listAdapter.getCount(); i++) {
view = listAdapter.getView(i, view, listView);
if (i == 0)
view.setLayoutParams(new ViewGroup.LayoutParams(desiredWidth,
LayoutParams.WRAP_CONTENT));

view.measure(desiredWidth, MeasureSpec.UNSPECIFIED);
totalHeight += view.getMeasuredHeight();
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight
+ (listView.getDividerHeight() * (listAdapter.getCount() - 1));
listView.setLayoutParams(params);
listView.requestLayout();
}

关于android - ScrollView 内的 ViewPager 内的 ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23429151/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com