Android: ScrollView no se desplaza

Estoy tratando de crear un diseño con un encabezado, un banner debajo de él, y luego un par de ListView bajo el banner. Quiero que la pantalla completa sea desplazable excepto el encabezado. Ahora sé que ListView no se desplaza dentro de ScrollView así que he fijado la altura del ListView bastante grande para mostrar todos los artículos. El problema es que, incluso después de estos cambios, veo que el ListView está desplazándose independientemente y la pantalla completa no es desplazable.

<include android:id="@+id/logo_header" android:layout_width="fill_parent" android:layout_height="wrap_content" layout="@layout/screen_header" /> <ScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:layout_weight="0.8" android:background="#f2f2f2"> <include android:id="@+id/mcUser" android:layout_width="fill_parent" android:layout_height="fill_parent" layout="@layout/complaint_reporters_details" android:layout_weight="2" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" android:weightSum="9" android:layout_weight="2"> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:weightSum="1" android:layout_weight="3" android:focusableInTouchMode="false" android:paddingLeft="30dp" android:paddingRight="30dp"> <ImageView android:id="@+id/mcShowList" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" android:layout_marginTop="5dp" android:layout_marginBottom="5dp" android:scaleType="fitXY" android:src="@drawable/list_icon" android:layout_weight="0.2" /> <TextView android:id="@+id/mcShowList_label" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" android:textStyle="bold" android:textSize="12sp" android:textColor="#929292" android:maxLines="1" android:text="List" android:layout_weight="0.8" android:layout_marginTop="-8dp" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:weightSum="1" android:layout_weight="3" android:gravity="center_vertical|center_horizontal" android:paddingLeft="30dp" android:paddingRight="30dp"> <ImageView android:id="@+id/mcShowMap" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" android:layout_marginTop="5dp" android:layout_marginBottom="5dp" android:scaleType="fitXY" android:src="@drawable/map_view" android:layout_weight="0.2"/> <TextView android:id="@+id/mcShowMap_label" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" android:textStyle="bold" android:textSize="12sp" android:textColor="#929292" android:maxLines="1" android:text="Map" android:layout_weight="0.8" android:layout_marginTop="-8dp" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:weightSum="1" android:layout_weight="3" android:focusableInTouchMode="false" android:paddingRight="30dp" android:paddingLeft="30dp"> <ImageView android:id="@+id/mcShowAnalytics" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" android:layout_marginTop="5dp" android:layout_marginBottom="5dp" android:scaleType="fitXY" android:src="@drawable/analytics_icon" android:layout_weight="0.2" /> <TextView android:id="@+id/mcShowAnalytics_label" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" android:textStyle="bold" android:textSize="12sp" android:textColor="#929292" android:maxLines="1" android:text="Analytics" android:layout_weight="0.8" android:layout_marginTop="-10dp" /> </LinearLayout> </LinearLayout> </LinearLayout> <RelativeLayout android:layout_weight="0.2" android:layout_width="fill_parent" android:layout_height="400dp"> <FrameLayout android:id="@+id/mcMapContainer" android:layout_width="match_parent" android:layout_height="fill_parent"/> <LinearLayout android:id="@+id/mcAnalyticsContainer" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="fill_parent"> <FrameLayout android:id="@+id/mcChartContainer" android:layout_gravity="center" android:layout_width="200dp" android:layout_height="200dp"/> <GridView android:id="@+id/mcAmenityList" android:layout_height="0dp" android:layout_weight="7" android:layout_width="match_parent" android:numColumns="3"/> </LinearLayout> <LinearLayout android:id="@+id/mcListContainer" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" android:weightSum="1"> <TextView android:text="Open Complaints" android:textColor="@color/red_btn_bg_color" android:textSize="18dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical|center_horizontal" android:padding="5dp" /> <ListView android:id="@+id/mcListOpen" android:layout_width="match_parent" android:layout_height="wrap_content"/> <TextView android:text="Closed Complaints" android:textColor="@color/red_btn_bg_color" android:textSize="18dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical|center_horizontal" android:padding="5dp" /> <ListView android:id="@+id/mcListClosed" android:layout_width="match_parent" android:layout_height="wrap_content"/> </LinearLayout> </RelativeLayout> </LinearLayout> </ScrollView> 

4 Solutions collect form web for “Android: ScrollView no se desplaza”

Cambie la altura de la vista de desplazamiento de match_parent a wrap_content. Debido a que la vista de desplazamiento sólo habilita el desplazamiento si su altura total es mayor que la altura de la vista principal. Reemplazar

 <ScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true"> 

Con este código:

 <ScrollView android:layout_width="match_parent" android:layout_height="wrap_content" android:fillViewport="true"> 

He utilizado el siguiente método varias veces en varias aplicaciones. Utilizo una subclase especial de ListView:

 package com.yourcompany.appname.views; import android.content.Context; import android.util.AttributeSet; import android.view.ViewGroup; import android.widget.ListView; public class NonScrollableListView extends ListView { public NonScrollableListView(Context context) { super(context); } public NonScrollableListView(Context context, AttributeSet attrs) { super(context, attrs); } public NonScrollableListView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int heightMeasureSpec_custom = MeasureSpec.makeMeasureSpec( Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, heightMeasureSpec_custom); ViewGroup.LayoutParams params = getLayoutParams(); params.height = getMeasuredHeight(); } } 

A continuación, en su diseño, en lugar de utilizar 's, utilice algo como esto:

 <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <com.yourcompany.appname.views.NonScrollableListView android:id="@+id/listId" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout> 

¡Espero que esto ayude!

Usted puede intentar esto,

  listView.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_MOVE) { return true; } return false; } }); 

Poner lista ver a otro xml e incluirlo como esto a continuación

 <RelativeLayout 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"> <include layout="@layout/show_message_header" /> <ScrollView android:id="@+id/myscrollview_Show_message" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="@dimen/header" android:fadingEdge="none" android:fillViewport="false" android:paddingRight="0dp" android:scrollbarAlwaysDrawVerticalTrack="false" android:scrollbarSize="0dp" android:scrollbarStyle="insideOverlay" android:scrollbars="none" > <TableLayout android:id="@+id/Show_message_dynamic_table" android:layout_width="match_parent" android:layout_height="fill_parent" > <include layout="@layout/desinglayoutforlistviewincludehere" /> </TableLayout> </ScrollView> 

  • Cómo crear multiline edittext con vista de desplazamiento dentro de la actividad?
  • ¿Cómo puedo cambiar el color de OverScroll en Android 2.3.1?
  • Android: elimina sólo el efecto FadingEdge inferior de la barra de desplazamiento
  • ScrollView alawys desplazándose hacia abajo
  • Comprobar si un androide scrollview puede desplazarse
  • Android ScrollView ¿cómo mantener el componente en la pantalla cuando se desplaza a la parte superior de la pantalla?
  • Android: arrastrar en MPAndroidChart no responde cuando está contenido en ScrollView
  • SurfaceView en ScrollView en 4.1
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.