gpt4 book ai didi

android - 如何滚动到长 ScrollView 布局的顶部?

转载 作者:IT老高 更新时间:2023-10-28 12:56:14 24 4
gpt4 key购买 nike

对于我的应用程序的一部分,用户会看到一个名称列表,并要求用户按照他们认为合适的方式对它们进行分组。

(注意,ListView 代码是从 Android View 教程中逐字复制的。我还没有根据我的需要对其进行自定义,我只是想弄清楚如何使它工作。)

基本布局是一个LinearLayout,包含一个ScrollView(在下面的代码中称为“groupsScrollView”),包含一个RelativeLayout。我有一些按钮和文本,然后是下面的 ListView,它显示名称列表。所有这些都高于可见的屏幕区域,因此允许用户垂直滚动以查看所有内容。

这一切都很好,除了页面加载时它总是预先滚动到我的 ListView 的顶部 - 在页面的中间。我创建的告诉用户该做什么的文本和按钮是不可见的。

我可以捕获屏幕并向上滚动,效果很好,但我希望屏幕加载已经滚动到顶部。用户不必向上滚动即可看到新加载页面的顶部。但是我尝试以编程方式滚动到屏幕顶部的所有操作都失败了。

这是我的 onCreate 方法:

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.groups);

mainScrollView = (ScrollView)findViewById(R.id.groupsScrollView);

//get the Bundle out of the Intent...
Bundle extras = getIntent().getExtras();
mNames = extras.getStringArray("mNames");

setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, mNames));

ListView lv = getListView();
lv.setTextFilterEnabled(true);

//This is the line I'm having issues with
mainScrollView.pageScroll(View.FOCUS_UP);

lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
Toast.LENGTH_SHORT).show();
}
});
}

“mainScrollView.pageScroll(View.FOCUS_UP); 行是问题所在。它不会导致错误,但它似乎没有做任何事情。我试过 scrollTo(0,0), scrollDirection( View.FOCUS_UP),以及我能想到的所有其他内容。

由于我没有收到错误消息,我不得不假设这些滚动命令实际上正在工作,但它们滚动到 ListView 的顶部,而不是滚动到包含它的 ScrollView 或 RelativeLayout 的顶部。谷歌自己对 scrollTo(int x, int y) 方法的描述似乎证实了这一点,他们说“这个版本还将滚动限制在我们 child 的范围内。”。

所以,为了让一个更长的问题变得更长,我如何在 ScrollView 中包含的屏幕上加载一堆 View ,然后以编程方式将整个内容滚动到页面顶部,以便用户可以与之交互?

谢谢!

最佳答案

试试

mainScrollView.fullScroll(ScrollView.FOCUS_UP);

它应该可以工作。

关于android - 如何滚动到长 ScrollView 布局的顶部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4119441/

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