android - ScrollView 中的 TabHost 强制它滚动到底部

标签 android android-tabhost android-scrollview

我的问题与这个未回答的问题非常相似,我将解释一些细微差别:

TabHost inside of a Scrollview: always scrolls down when a Tab is clicked

我的 ScrollView 开始滚动到底部,显示 TabHost 内容而不是上面的内容(您可以在链接的问题中看到屏幕截图,它非常相似)。

如果我手动向上滚动,在不同的选项卡中单击不会影响 ScrollView,问题仅出现在第一次显示时。 这是和其他问题的区别。

我尝试过但没有成功的事情:

  1. 使 ScrollView 中的顶部组件可获得焦点,这样它们就会获得焦点而不是选项卡。
  2. 使用 sv.fullScroll(View.FOCUS_UP);sv.scrollTo(0, 0);。此外,在初始化时运气不佳,但随后调用 onResume() 有效地将其滚动到顶部。

关于为什么会发生这种情况的任何想法?也非常欢迎提供有关如何进一步调查的提示。

最佳答案

Pedro 可能来不及帮你了,但我确实找到了一个对我有用的解决方案。我在 TabHost 源代码中注意到,如果 View 中没有其他内容具有焦点,它会请求 Focus。因此,我确保 ScrollView 中的第一个组件是可聚焦的,并为其请求聚焦。

// Get the first component and make sure it is focusable. Note you have to use setFocusableInTouchMode and not setFocusable for this to work.
TextView v = (TextView) view.findViewById(R.id.first_component_in_view);
v.setFocusableInTouchMode(true);
v.requestFocus();

希望这会对某人有所帮助。

关于android - ScrollView 中的 TabHost 强制它滚动到底部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9826130/

相关文章:

android - 无法从模拟器传输大于 2 MB 的文件

android - 如何实现 TabHost 滑动效果?

java - 当我返回 Activity 时,不会调用 onCreate() 函数

android - 无法创建选项卡内容,因为在 Android Eclipse 中找不到 ID 为 -1 的 View XML 错误?

android - 如何为 TabHost 背景动态更改 shapedrawable 颜色?

Android - 在键盘启动时为 android 5.0 (lollipop) 调整 ScrollView

android - setError 消息正在影响滚动 android 的 ScrollView

Android NestedScrollView TalkBack - 仅导航到屏幕上可见的项目,跳过滚动下方的元素并转到底部选项卡

android - 任务 ':app:compileDebugKotlin'的执行失败。 >内部编译器错误。请参阅日志以获取更多详细信息

android - 找不到 Google Glass ADB 设备。未安装 OMAP4430 驱动程序(找不到!)