gpt4 book ai didi

android - 禁用选项卡之间的滑动

转载 作者:行者123 更新时间:2023-12-02 00:00:34 25 4
gpt4 key购买 nike

我设置了带有两个 Fragment 的滑动选项卡,每个 Fragment 都有一个 Button ,可转到 WebView 。问题是,当单击 WebView Button 时,滑动选项卡仍然处于激活状态,并且当用户尝试在 WebView 中导航时,您会结束向上滑动到另一个选项卡。单击方法中有没有办法禁用选项卡的滑动功能?任何帮助将不胜感激!

代码如下:

public class MyWebViewClass extends Fragment {

private WebView mWebView;
private Button mButton;

public MyWebViewClass() {
// Required empty public constructor
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_webview, container, false);

mWebView = (WebView) view.findViewById(R.id.WebView);

mButton = (Button) view.findViewById(R.id.Button1);
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mWebView.setVisibility(View.VISIBLE);
mButton.setVisibility(View.GONE);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("www.google.com");
}
});

return view;
}

最佳答案

这个答案实际上可以应用于任何 ViewPager,无论您使用什么库来实现选项卡,甚至是没有选项卡的普通 ViewPager。

您正在使用的库 neokree/MaterialTabs由负责滑动效果的 ViewPager 支持,您可以使用新的 ViewPager2 禁用它。或提供您自己的自定义 ViewPager。

import android.annotation.SuppressLint
import android.content.Context
import android.util.AttributeSet
import android.view.MotionEvent
import androidx.viewpager.widget.ViewPager

class CustomViewPager(context: Context, attrs: AttributeSet) : ViewPager(context, attrs) {

var isPagingEnabled: Boolean = true

@SuppressLint("ClickableViewAccessibility")
override fun onTouchEvent(event: MotionEvent): Boolean {
return isPagingEnabled && super.onTouchEvent(event)
}

override fun onInterceptTouchEvent(event: MotionEvent): Boolean {
return isPagingEnabled && super.onInterceptTouchEvent(event)
}
}

此类提供了一个可滑动的ViewPager,您可以通过viewPager.isPagingEnabled = false将其关闭

更不用说您必须将 XML 布局更改为新的自定义 ViewPager 而不是原始布局。

<androidx.viewpager.widget.ViewPager 
...
/>

<my.package.CustomViewPager 
...
/>

关于android - 禁用选项卡之间的滑动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58180528/

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