gpt4 book ai didi

android - 在 Viewpager 中滚动 Webview

转载 作者:可可西里 更新时间:2023-11-01 18:47:19 25 4
gpt4 key购买 nike

我在 ViewPager 中有一个 WebView。而且 ViewPager 似乎消耗了所有水平滚动,所以我无法在 WebView(垂直作品)中滚动。

如何实现 WebView 优先使用水平滚动?

最佳答案

不要问我为什么这段代码被格式化成这样,

<强>1。像这样实现自定义 ViewPager 实例:

import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;

public class CustomViewPager extends ViewPager {

private MagazineWebView_WithoutFlipWebView mCurrentPageWebView_; //custom webview

public CustomViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}

@Override
public boolean onInterceptTouchEvent(MotionEvent event) {

if (Constants.LOGGING) {
Log.v(Constants.LOG_OEAMTC_APP, "CustomViewPager - onInterceptTouchEvent");
}

// if view zoomed out (view starts at 33.12... scale level) ... allow
// zoom within webview, otherwise disallow (allow viewpager to change
// view)
if (mCurrentPageWebView_ != null && (mCurrentPageWebView_.getScale() * 100) > 34) {
Log.v(Constants.LOG_OEAMTC_APP, "CustomViewPager - intrcepted: " + String.valueOf((mCurrentPageWebView_.getScale() * > 100)));
this.requestDisallowInterceptTouchEvent(true);
}
else {
if (mCurrentPageWebView_ != null) {
Log.v(Constants.LOG_OEAMTC_APP,
"CustomViewPager - not intrcepted: " + String.valueOf(mCurrentPageWebView_.getScale() * 100));
}
this.requestDisallowInterceptTouchEvent(false);
}

return super.onInterceptTouchEvent(event);
}

public MagazineWebView_WithoutFlipWebView getCurrentPageWebView() {
return mCurrentPageWebView_;
}

public void setCurrentPageWebView(MagazineWebView_WithoutFlipWebView currentPageWebView) {
mCurrentPageWebView_ = currentPageWebView;
}
}

<强>2。在您的主要 (ViewPager) Activity 中,将以下行添加到 View 寻呼机

mViewPager_ = new AwesomePagerAdapter();
viewpapgerInLayout = (CustomViewPager) findViewById(R.id.awesomepager);
viewpapgerInLayout.setAdapter(mViewPager_);
viewpapgerInLayout.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
viewpapgerInLayout.setCurrentPageWebView(mLstPagesWebviews_.get(position));
}

@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

}

@Override
public void onPageScrollStateChanged(int state) {

}
});

<强>3。最后,运行它 :=) 如果缩放级别是初始缩放,允许更改页面,所有其他时间您都可以浏览您的 WebView

附注: *不要忘记*用您刚创建的 CustomViewPager 类更改 *.xml 文件中的 ViewPager

祝你好运:)

关于android - 在 Viewpager 中滚动 Webview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8782637/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com