我有ViewPager
一个自定义PagerAdapter
显示一组片段。
这些片段(故意)彼此重叠放置,以便我可以使用 PageTransformer 使其看起来好像用户正在从堆栈中滑动片段(几乎就像一副纸牌)。
问题是每个片段都有自己的Views
/ Widgets
(例如搜索栏),由于重叠,它们占据相同的坐标,有时触摸事件被当前片段下方的片段捕获(例如,用户调整搜索栏的位置,但不是更新当前显示的搜索栏,而是下一个片段中的搜索栏更新其进度)。
我遇到了这个答案,但这不是完全相同的问题。有没有人发现过类似的问题?处理此问题的最聪明的方法是什么(除了惰性解决方案:将 PageTransformer 更改为不重叠片段的方法)?
编辑:
在我的片段类中,我有:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View rootView = inflater.inflate(R.layout.fragment, container, false);
rootView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return true;
}
});
}
正如 Zsombor Erdődy-Nagy 所建议的那样,但这无济于事:当前片段下方的小部件仍然有可能接收事件而不是当前片段。
我也看过这个未解决的问题,但没有成功。