Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


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

 @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 ?

2 Solutions collect form web for “Agregando Viewpager como un encabezado a un listView”

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); } 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.