Home Menu

Menu



Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 25/11/12, 23:48:29
Avatar de ugarte
ugarte ugarte no está en línea
Miembro del foro
Mensajes: 66
 
Fecha de registro: abr 2012
Mensajes: 66
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Problema con ListView y Scroll de la actividad

Buenas!! Estoy comenzando con el mundo de la programación en android y tengo un problema que ni san google me ha podido solucionar, acudo a vuestra experiencia.
Estoy haciendo una aplicación simple pero para simplificar un poco las cosas os pongo un ejemplo con mi problema:
Me gustaría mostrar en una pantalla una serie de datos (TextView), una lista en medio, luego otra serie de datos(TextView) que se cargarán de una base de datos. El problema que me encuentro es que si la lista es demasiado grande los datos de abajo se ocultan y no hay posibilidad de verlos y que el scroll se pone en la lista y no en la activity. Si pongo scroll en la activity (Con <ScrollView> al principio y al final) me encuentro con que la lista solo me muestra el primer elemento y no aumenta. Como puedo solucionar el problema?

Siento si no me se explicar bien, dejo el código de un ejemplo rápido que he hecho.

main_activity.xml
Código:
	<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	    xmlns:tools="http://schemas.android.com/tools"
	    android:layout_width="fill_parent"
	    android:layout_height="wrap_content"
	    android:orientation="vertical" >
	
	    <TextView
	        android:layout_width="fill_parent"
	        android:layout_height="wrap_content"
	       	android:text="Datos cargados de la base de datos 1" />
	    <TextView
	        android:layout_width="fill_parent"
	        android:layout_height="wrap_content"
	       	android:text="Datos cargados de la base de datos 2" />
	    <TextView
	        android:layout_width="fill_parent"
	        android:layout_height="wrap_content"
	       	android:text="Datos cargados de la base de datos 3" />
	    
	    <ListView 
	        android:layout_width="fill_parent"
	        android:layout_height="fill_parent"
	        android:id="@+id/lstLista"/>
	        
	        
	    <TextView
	        android:layout_width="fill_parent"
	        android:layout_height="wrap_content"
	       	android:text="Datos cargados de la base de datos 4" />
	    <TextView
	        android:layout_width="fill_parent"
	        android:layout_height="wrap_content"
	       	android:text="Datos cargados de la base de datos 5" />
	    <TextView
	        android:layout_width="fill_parent"
	        android:layout_height="wrap_content"
	       	android:text="Datos cargados de la base de datos 6" />
	    <TextView
	        android:layout_width="fill_parent"
	        android:layout_height="wrap_content"
	       	android:text="Datos cargados de la base de datos 7" />
	    
	    <LinearLayout
	        android:layout_width="fill_parent"
	        android:layout_height="wrap_content"
	        android:orientation="horizontal" >
	        
	        <Button 
	            android:id="@+id/btnAceptar"
	            android:layout_width="match_parent"
	            android:layout_height="wrap_content"/>
	        <Button 
	            android:id="@+id/btnCancelar"
	            android:layout_width="match_parent"
	            android:layout_height="wrap_content"/>/>
	    </LinearLayout>
	
	</LinearLayout>
MainActivity.java
Código:
public class MainActivity extends Activity {
	
	

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		ListView lstLista = (ListView)findViewById(R.id.lstLista);
		
		String lista[] = new String[20];
		for (int i = 0; i < lista.length; i++)
			lista[i] = new String("Elemento "+i);

		
		ArrayAdapter <String> adaptador = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, lista);
		
		lstLista.setAdapter(adaptador);
		
	}


}
Responder Con Cita


  #2  
Viejo 26/11/12, 15:28:56
Avatar de RubenGM85
RubenGM85 RubenGM85 no está en línea
Miembro del foro
Mensajes: 435
 
Fecha de registro: mar 2010
Localización: Girona
Mensajes: 435
Modelo de smartphone: LG Nexus 5
Versión de ROM: Stock
Tu operador: Vodafone
Mencionado: 5 comentarios
Tagged: 0 hilos
No puedes tener un elemento con scroll en un contenedor con scroll en el mismo eje. (Por poder puedes, pero pasa lo que comentas.

¿Estás seguro de que quieres que el usuario no sepa qué se va a mover cuando intente hacer scroll?

Yo lo primero que haría sería convertir ese LinearLayout a RelativeLayout; colocar todo el texto de arriba, luego el de abajo y al final al ListView decirle "below=texto de arriba" y "above=texto de abajo".
Responder Con Cita
  #3  
Viejo 26/11/12, 15:50:49
Avatar de ugarte
ugarte ugarte no está en línea
Miembro del foro
Mensajes: 66
 
Fecha de registro: abr 2012
Mensajes: 66
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Pero de esa manera podria darse el caso de que la lista no se viera si la pantalla es muy pequeña.

Estoy pensando que podría crear textview en tiempo de ejecucion y meterlos en un linearlayout y asi me olvido de poner una lista.

De todas formas me gustaria saber si alguien sabe como crear una lista que tenga dos botones que realicen funciones diferentes para el item seleccionado.

Enviado desde mi LT18i usando Tapatalk 2
Responder Con Cita
  #4  
Viejo 26/11/12, 15:52:19
Avatar de RubenGM85
RubenGM85 RubenGM85 no está en línea
Miembro del foro
Mensajes: 435
 
Fecha de registro: mar 2010
Localización: Girona
Mensajes: 435
Modelo de smartphone: LG Nexus 5
Versión de ROM: Stock
Tu operador: Vodafone
Mencionado: 5 comentarios
Tagged: 0 hilos
Si a una row de una lista le añades un botón se dejará de llamar al OnItemClickListener, así que tendrás que asignar OnClickListeners a cada uno de los botones.


¿Puedes colgar una captura de cómo queda ahora mismo ese layout?
Responder Con Cita
  #5  
Viejo 26/11/12, 20:24:17
Avatar de ugarte
ugarte ugarte no está en línea
Miembro del foro
Mensajes: 66
 
Fecha de registro: abr 2012
Mensajes: 66
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Así quedaría de la forma que has dicho, ahora puedo hacer scroll y en la lista y se me ve toda la aplicación, el problema es que si por ejemplo giras la pantalla o la pantalla es mas pequeña pasa esto:
https://www.dropbox.com/s/evwn3yuxu2...2018.10.06.png
https://www.dropbox.com/s/fm25w5aewy...2018.10.12.png
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android

Herramientas

Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 14:44:49 (GMT +2)

Cookies
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007