Estoy intentando crear un conjunto de vistas web desplazable horizontalmente, utilizando el widget Galería. El problema es que no puedo deslizar las vistas, lo que por supuesto funciona para galerías de imágenes. siguiente código de libro de cocina, en onCreate de la actividad() I:Android: Galería de vistas web
g = (Gallery) findViewById(R.id.chapter_browser);
g.setAdapter(new WebViewAdapter(this));
A continuación, el adaptador crea las webviews y los devuelve para los índices solicitados:
public class WebViewAdapter extends BaseAdapter {
int mGalleryItemBackground;
private Context mContext;
private String[] pages = {
"test1.html",
"test2.html",
"test3.html",
"test4.html"
};
public WebViewAdapter(Context c) {
mContext = c;
}
public int getCount() {
return pages.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
WebView i = new WebView(mContext);
i.loadUrl("file:///android_asset/" + pages[position]);
i.setBackgroundResource(mGalleryItemBackground);
i.setWebViewClient(new WebViewClient());
i.setLayoutParams(new Gallery.LayoutParams(100,100));
i.setInitialScale(100);
i.setFocusable(false);
i.setClickable(false);
return i;
}
}
El problema parece ser que el WebView insiste en eventos de consumo de contacto, a pesar de establecer su atributo clickable
desactivado. Intenté crear un OnTouchEventListener para las vistas y luego enviar los eventos a la galería, pero eso parece bloquear el programa.
Cualquier pista apreciada.
De hecho, eso es lo que terminé haciendo, exactamente por la razón que mencionas. Pero todavía estoy interesado en el problema general: ¿cómo se pueden interceptar los eventos de clics en WebViews, incluso si solo hay una WebView principal como vista principal? –