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 tener un pie de página fijo con scrollview en android?
  • Cómo desplazar el edittext dentro de la vista de desplazamiento
  • Android ScrollView establece la altura del contenido visualizado
  • ¿Cómo configurar las imágenes para ScrollView en lugar de degradar los bordes?
  • Función de desplazamiento de listview dentro de la vista de desplazamiento
  • Android: ¿Cómo puedo añadir un pie de página a una vista de pantalla completa?
  • Android: ¿cómo comprobar si una Vista dentro de ScrollView está visible?
  • Correctamente desplazando un EditText a la vista cuando se enfoca
  • Cómo cambiar el color de la actual desplazamiento en ScrollView Android?
  • Stop scrollView en el centro del rollo
  • ¿Cómo deshabilitar el desplazamiento ScrollView?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.