Agregando Viewpager como un encabezado a un listView
Estoy tratando de programar una actividad que muestran un viewpager con algunas imágenes y listview a continuación con algunos datos .. pero mi problema es que puedo desplazar sólo el listview en la última parte de la pantalla que quería hacer el viewpager desplazable con el Listview así que pensé en ponerlo como encabezado .. aquí está mi archivo XMl
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <com.devsmart.android.ui.HorizontalListView android:id="@+id/sectionsList" android:layout_width="wrap_content" android:layout_height="25dp" android:background="@drawable/menu_bg" /> <include layout="@layout/main_screen_components" /> <ListView android:id="@+id/list" android:layout_width="fill_parent" android:layout_height="wrap_content" />
Y escribo esto en mi clase
- Soltar sombra para un ViewPager
- Navegación anterior separada para un buscador de vistas con pestañas en Android
- Haciendo referencia a fragmentos invisibles en ViewPager
- Página curl con vista pager
- Actualizar SlidingTabLayout
@Override protected void onPostExecute(List<News> result) { Utils.pagerNews(result); Utils.listNews(result); ImagePagerAdapter pAdapter = new ImagePagerAdapter( appManager.getPagerNews()); pager.setAdapter(pAdapter); View headerView = getLayoutInflater().inflate(R.layout.main_screen_components , null , false); NewsListAdapter adapter = new NewsListAdapter(getBaseContext(), appManager.getListNews()); listView.addHeaderView(headerView); listView.setAdapter(adapter); progress.dismiss(); }
Cuando ejecuto este código me da un paginador duplicado .. fijo uno con los datos y un vacío como un encabezado de mi listview .. cuando quito que incluyen mi buscapersonas se bloquea cuando intento establecer un adaptador para el buscapersonas. . alguna idea ?
- FragmentPagerAdapter y FragmentStatePagerAdapter
- Android ViewPager guardar página anterior en onPageSelected
- No se puede cambiar la etiqueta del fragmento
- FragmentPagerAdapter getItem no está siendo activado
- Cómo lograr ViewPager (siguiente / anterior) en la aplicación de reproductor de música
- Acceso a TextView en ViewPager desde la actividad
- Implementar la función como la aplicación de iOS que cierra vertical Desplazar-para-Descartar con ViewPager
- ViewPager con Fragmentos que contienen TableLayouts se carga lentamente:
Acaba de establecer onTouchListener viewPager, así:
viewPager.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { PointF downP = new PointF(); PointF curP = new PointF(); int act = event.getAction(); if(act == MotionEvent.ACTION_DOWN || act == MotionEvent.ACTION_MOVE || act == MotionEvent.ACTION_UP){ ((ViewGroup) v).requestDisallowInterceptTouchEvent(true); if (downP.x == curP.x && downP.y == curP.y) { return false; } } return false; }
Utilice la clase de viewpager personalizada a continuación:
public class CustomViewPager extends ViewPager { boolean xScored = false, yScored = false; public CustomViewPager(Context context) { super(context); } public CustomViewPager(Context context, AttributeSet attrs) { super(context, attrs); } @Override public boolean onTouchEvent(MotionEvent ev) { mGestureDetector.onTouchEvent(ev); if (ev.getAction() == MotionEvent.ACTION_UP || ev.getAction() == MotionEvent.ACTION_CANCEL) { xScored = false; yScored = false; requestDisallowInterceptTouchEvent(false); } return super.onTouchEvent(ev); } GestureDetector.SimpleOnGestureListener mOnGestureListener = new GestureDetector.SimpleOnGestureListener() { @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { if (!yScored && Math.abs(distanceX) > Math.abs(distanceY)) { xScored = true; yScored = false; } if (xScored) { requestDisallowInterceptTouchEvent(true); } else if (!xScored && Math.abs(distanceY) > Math.abs(distanceX)) { xScored = false; yScored = true; requestDisallowInterceptTouchEvent(false); } return true; } }; GestureDetector mGestureDetector = new GestureDetector(getContext(), mOnGestureListener); }
- ¿Hay una manera de desactivar la animación de Android ListView?
- Mostrar texto de notificación en la barra de estado – Android