私のアプリでPDFページを表示するためにアンドロイド互換パッケージバージョン4を使用しています。 私はPagerAdapter & ViewPagerを使って、水平スクロールビューのようなpdfページを表示しました。AndroidのViewPagerでページングを無効にして有効にする
問題がページングに関連しています。このスレッドandroid: ViewPager and HorizontalScrollVIewに従ってビューページ内の子を検出することでページングを停止できますが、ユーザーがそのビューの外に触れたときにどうすれば有効にすることができますか?私はCustomViewPagerに次のコードを使用しました。
public class CustomViewPager extends ViewPager {
private boolean enabled;
private int childId;
public CustomViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
this.enabled = true;
}
public void setChildId(int childId) {
this.childId = childId;
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
boolean result = false;
View scroll = getChildAt(childId);
if (scroll != null) {
Rect rect = new Rect();
CommonLogic.logMessage("PDF Page Rectangle ", TAG, Log.VERBOSE);
scroll.getHitRect(rect);
if (rect.contains((int) event.getX(), (int) event.getY())) {
setPagingEnabled(false);
result = true;
}
}
return result;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (this.enabled) {
return super.onTouchEvent(event);
}
return false;
}
public void setPagingEnabled(boolean enabled) {
this.enabled = enabled;
}
}
if(scroll!=null)
は両方の向きで真になっていることも、その後、PDFページの外に触れてみてください。
ViewPagerでページングが続行されるように、どのようにしてそれを元に戻すことができますか。
にthis.enableのと設定されたデフォルト値「this.enableを返す」ためには、あなたがこれをしようと試みておいてください。http://stackoverflow.com/a/2655740/969325 – Warpzit