我有一个带有LinearLayout的ScrollView,LinearLayout有几个孩子。其中一个子项是包含导航选项的HorizontalScrollView。当应用程序加载时,顶部有一些内容,屏幕中间有菜单,下面有更多内容。我希望菜单能够将屏幕与其他内容一起向上滚动,但当它开始滚动屏幕时,锁定到顶部类似标题。如果用户向下滚动,它应保持固定,直到其下的所有内容都滚动,然后再次开始滚动,这样如果它们一直滚动,屏幕看起来与它开始的方式相同。现在我有了这个初步尝试,似乎什么也没做:
final View carouselMenu = rootView.findViewById(R.id.carousel_menu);
ScrollView scrollView = (ScrollView) rootView.findViewById(R.id.main_scroll);
RelativeLayout mainContainer = (RelativeLayout) rootView.findViewById(R.id.main_root_container);
scrollView.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() {
@Override
public void onScrollChanged() {
if (carouselMenu.getScrollY() < 0) {
carouselMenu.setScrollY(0);
}
}
});
setScrollY似乎没有像我希望的那样设置View的绘制位置。有没有办法手动覆盖屏幕上放置特定视图的位置,还是我没有考虑过的更好的方法?