你可以使用 getView()
方法一
在调用 getView 之前,您必须确保片段的 onCreateView 方法已执行(例如,您可以将 OnPageChangeListener 附加到 viewpager,并在 onPageSelected 内附加 OnTouchListener)
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
fragments.get(position).getView().setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
return false;
}
});
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
方法二
使用 setOnTouchListener 方法创建一个基本片段:
public class TouchableFragment extends Fragment {
protected View.OnTouchListener mOnTouchListener;
public void setOnTouchListener(View.OnTouchListener mOnTouchListener) {
this.mOnTouchListener = mOnTouchListener;
}
}
在片段的 onCreateView 方法中:
public class MyFragment extends TouchableFragment {
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle s) {
mView = inflater.inflate(
R.layout.a_layout
container,
false
);
if(this.mOnTouchListener != null){
mView.setOnTouchListener(this.mOnTouchListener);
}
return mView;
}
}
在您的活动中:
MyFragment myFragment = new MyFragment();
myFragment.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
return false;
}
});