I set up sliding tabs with two Fragment
s each Fragment
has a Button
which goes to a WebView
. The problem with this is when the WebView
Button
is clicked the sliding tabs are still activated and when a user tries to navigate within the WebView
you end up swiping to the other tab. Is there a way in an on click method to disable the swiping ability of the tabs? Any help would be hugely appreciated!
Here the code:
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;
}
This answer can be applied to any ViewPager actually no matter what is the library you are using to implement the tabs or even a normal ViewPager without tabs.
The library you are using neokree/MaterialTabs is backed with a ViewPager that is responsible for the swiping effect and you can disable that by providing your own custom ViewPager.
ViewPager with paging disabled all the time
OR ViewPager with paging switchable to on or off at anytime.
This class provides a ViewPager that is swiping enabled and you can turn it off by
viewPager.setPagingEnabled(false);
No to mention that you have to change the XML layout to your new custom ViewPager rather than the original one.
to
The simplest way is to
setOnTouchListener
and returntrue
forViewPager
.original answer: https://stackoverflow.com/a/13392198/4293813