【发布时间】:2018-06-20 13:07:29
【问题描述】:
我的 Android ViewPager 已设置为在边界之外绘制视图(剪辑边界设置为 false)。我在页面上显示的所有视图上都有一个触摸事件侦听器。自定义视图显示在第 1 页上,在其剪辑边界之外绘制并溢出到第 2 页。第 1 页上的触摸事件工作正常。滚动到第二页时,将显示剩余的视图。问题是自定义视图上的触摸事件(在页面 1 上添加)在页面 2 上单击时不会被调用。
PageViewActivity.cs
ViewPager mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setClipChildren(false);
mViewPager.setClipToPadding(false);
PageViewFragment.cs
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.page_layout, container, false);
setHasOptionsMenu(true);
View view1=(View)v.findViewById(R.id.view1);
view1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getActivity(), "View clicked",Toast.LENGTH_SHORT).show();
}
});return v;
}
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipChildren="false"
android:clipToPadding="false" >
<View
android:id="@+id/view1"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_marginLeft="250dp"
android:layout_marginTop="20dp"
android:background="#ff0000" />
片段布局 - page_layout.xml
有什么建议吗?
【问题讨论】:
-
显示代码的相关部分。
-
@PM77-1 添加了代码。 @+id/view1 显示在第 1 页和第 2 页上。点击事件在页面 1 上起作用,而不是在 page2 上。