Deaktivieren Sie das Swiping zwischen den Registerkarten

Ich setze Schiebe-Tabs mit zwei Fragment s jedes Fragment hat einen Button der zu einem WebView . Das Problem hierfür ist, wenn die WebView angeklickt wird, die Schieberegister sind noch aktiviert und wenn ein Benutzer versucht, innerhalb der WebView zu navigieren, WebView man auf die andere Registerkarte. Gibt es einen Weg in eine Klick-Methode, um die Swiping-Fähigkeit der Registerkarten zu deaktivieren? Jede Hilfe wäre sehr dankbar!

Hier der Code:

  • Android.view.WindowManager $ BadTokenException: Kann nicht hinzufügen Fenster - Token Null ist nicht gültig
  • Wie bekomme ich Länge in Millisekunden Video von URL ohne Video-Ansicht in Android?
  • Wie man einen gemeinsamen Menüpunkt in mehrere Menüs im Android-Menü xml?
  • Android ListView mit Paging-Crashs
  • Android Geofencing API BroadcastReceiver nicht ausgelöst
  • Über Android-App aus einer URL starten
  •  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; } 

  • Fehler beim Re-Login mit Google nach dem Logout in Android
  • Android: Mehrere Benachrichtigungen als einzelne Liste in der Statusleiste
  • Animierte RecyclerView beim Scrollen
  • Wie lautet der Fehler "HeapWorker ist verkeilt" in Android?
  • Gibt es eine einfache Möglichkeit, einen Rand an die Oberseite und Unterseite einer Android-Ansicht hinzuzufügen?
  • Wie zu unterdrücken bestimmte Lint Warnung für veraltete Android-Funktion?
  • 2 Solutions collect form web for “Deaktivieren Sie das Swiping zwischen den Registerkarten”

    Diese Antwort kann auf jeden ViewPager angewendet werden, egal was die Bibliothek ist, die Sie verwenden, um die Tabs oder sogar einen normalen ViewPager ohne Tabs zu implementieren.

    Die Bibliothek, die du mit neokree / MaterialTabs verwende, wird mit einem ViewPager gesichert, der für den Swiping-Effekt verantwortlich ist und du kannst das durch die Bereitstellung deines eigenen benutzerdefinierten ViewPagers deaktivieren.

     import android.content.Context; import android.util.AttributeSet; import android.view.MotionEvent; /** * Created by hegazy on 2/13/15. */ public class CustomViewPager extends android.support.v4.view.ViewPager{ private boolean enabled; public CustomViewPager(Context context, AttributeSet attrs) { super(context, attrs); this.enabled = true; } @Override public boolean onTouchEvent(MotionEvent event) { return enabled ? super.onTouchEvent(event) : false; } @Override public boolean onInterceptTouchEvent(MotionEvent event) { return enabled ? super.onInterceptTouchEvent(event) : false; } public void setPagingEnabled(boolean enabled) { this.enabled = enabled; } public boolean isPagingEnabled() { return enabled; } } 

    Diese Klasse bietet einen ViewPager, der Swiping aktiviert ist, und Sie können ihn ausschalten durch mViewPager.setPagingEnabled(false);

    Nein, um zu erwähnen, dass Sie das XML-Layout auf Ihre neue benutzerdefinierte ViewPager anstatt die ursprüngliche ändern müssen.

     <android.support.v4.view.ViewPager ... /> 

    nach

     <my.package.CustomViewPager ... /> 

    Der einfachste Weg ist, setOnTouchListener zu setOnTouchListener und für ViewPager .

    Ursprüngliche Antwort: https://stackoverflow.com/a/13392198/4293813

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.