其他分享
首页 > 其他分享> > 滚动视图内的TabHost强制其滚动到底部

滚动视图内的TabHost强制其滚动到底部

作者:互联网

我的问题与这个未解决的问题非常相似,我将解释一些小的差异:

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

我的ScrollView启动器滚动到底部,显示TabHost内容,而不是其顶部的内容(您可以在链接的问题中看到屏幕截图,这非常相似).

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

我尝试失败的事情:

>使ScrollView中的顶部组件可聚焦,这样它们将获得焦点而不是选项卡.
>使用sv.fullScroll(View.FOCUS_UP)强制ScrollView在onResume()方法中滚动到顶部或sv.scrollTo(0,0);.同样,初始化没有运气,但是随后对onResume()的调用有效地将其滚动到顶部.

为什么会这样?也欢迎提供有关进一步调查的提示.

解决方法:

帮您Pedro可能为时已晚,但我确实找到了对我有用的解决方案.我在TabHost源代码中注意到,如果视图中没有其他对象具有焦点,它将请求Focus.因此,我确保“滚动”视图中的第一个组件是可聚焦的,并要求对其进行聚焦.

// 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,android-tabhost,android-scrollview
来源: https://codeday.me/bug/20191011/1894248.html