ScrollView内的TabHost强制它滚动到底部

Ped*_*dro 2 android android-tabhost android-scrollview

我的问题与这个没有答案的问题非常相似,我将解释一些小的差异:

Scrollview内部的TabHost:单击Tab时始终向下滚动

我的ScrollView启动滚动到底部,显示TabHost内容而不是它上面的内容(你可以看到链接问题中的截图,它非常相似).

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

我试过的事情没有成功:

  1. 使ScrollView内的顶部组件可以对焦,这样他们就可以得到焦点而不是标签.
  2. 强制滚动型滚动到顶部onResume()sv.fullScroll(View.FOCUS_UP);sv.scrollTo(0, 0);.此外,初始化没有运气,但后续调用onResume()有效地将其滚动到顶部.

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

小智 7

可能为时已晚,无法帮助您佩德罗,但我确实找到了适合我的解决方案.我在TabHost源代码中注意到,如果视图中没有其他内容具有焦点,则它会请求Focus.所以我确保Scroll视图中的第一个组件是可聚焦的,并请求它的焦点.

// 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();
Run Code Online (Sandbox Code Playgroud)

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