PDA

Ver la Versión Completa : Inconveniente layout


truxky
13/10/12, 09:46:21
Buenos días a todos!!

Tengo un "inconveniente" en una aplicación, y no se que camino elegir:

El problema es que tengo un layout con muchos textview, metidos dentro de una tablelayout, entonces me genera un layout enorme y creo que eso no es optimo ni amigable para el usuario.

¿Qué me podéis recomendar para intentar solucionarlo o por otra parte a lo mejor os parece conveniente seguir haciéndolo así?

Un saludo.
Muchas gracias.

rinxe
13/10/12, 12:54:46
Hola truxky, si dejaras algun dato mas, yo creo k te podriamos ayudar. porque no sabemos ni como es el layout, ni cuantos texview quieres meter, ni como los kieres poner, .. ;-)

para que te hagas una idea, yo estoy haciendo una clasificacion de voley y no me a kedado otra que meterlo en landscape.
http://imageshack.us/a/img16/83/screenshot2012101119373v.png (http://imageshack.us/photo/my-images/16/screenshot2012101119373v.png/)

Celtium
13/10/12, 18:37:21
mételo en un scrollview.

;)

truxky
14/10/12, 23:29:24
La idea es mostrar una tabla con una serie de valores que son calculados.

Me gustaría estructurarlo de la siguiente manera, pero no se si es eficiente o tendríais alguna idea.

http://imageshack.us/a/img502/217/sinttuloert.png

Son alrededor de unos 100 textview, entonces queda una pantalla muy grande.

¿Que me recomendáis?

Muchas gracias.

Un saludo.

kriogeN
14/10/12, 23:37:20
Haz agrupaciones y mételo en un ViewPager.

Para el que no lo sepa el ViewPager es lo que tiene por ejemplo el Play Store, para moverte entre "Categorías", "Destacados", "Top Ventas", etc... Y con el efecto de transición ya implícito, incluido el arrastrar lentamente y ver como se va moviendo.

Necesitas la librería Android Support V4.

truxky
14/10/12, 23:41:26
Podría tener todos los textviews divididos en 3 categorías, pero no se como hacer los viewerpager, tu tienes algún ejemplo de como hacerlos??

Gracias.

kriogeN
14/10/12, 23:57:25
Aquí tienes el tutorial que seguí yo cuando lo hice, es bastante sencillo.

http://mobile.tutsplus.com/tutorials/android/android-user-interface-design-horizontal-view-paging/

Te recomiendo que justo después de crear el ViewPager en el código uses el método: setOffscreenPageLimit para poner el número total de páginas que vas a usar, de lo contrario si por ejemplo tienes 3 páginas siempre que estés en la primera eliminará la tercera de la memoria, y cuando estés en la tercera eliminará la primera, ya que por defecto sólo mantiene en memoria a la que tiene inmediatamente a la izquierda y derecha de la actual.

EDITO: Si quieres poner un indicador con los títulos, igual que en el Play Store, tienes que usar la clase ViewPagerIndicator. Aquí tienes un tutorial:

http://androcode.es/2011/11/viewpager-anadiendo-titulos/

truxky
14/10/12, 23:59:41
muchas gracias. voy a probar y ya os contare como a ido.

truxky
15/10/12, 12:48:38
Muchas gracias a todos.

La verdad que con los PageViewer queda muy bien, ahora me ha surgido otro problema, y es que yo tengo 3 layout, cada uno en un ViewerPage.

Ahora tengo que acceder a los textview de los diferentes layout pero desde donde creo que el ViewerPage no tengo acceso.

Hay que crear otras clases o referenciarlos de otra forma??

Un saludo.

kriogeN
15/10/12, 13:39:43
Puedes crear variables globales en la Activity, a las que si tendrás acceso en el instantiateItem del PagerAdapter, y las que podrás asignar al mismo tiempo que asignas los TextView.

También puedes crearlos dentro de la Activity, y tener métodos para asignar esas variables, y llamarlos desde el PagerAdapter con: NombreActivity.this.asignaVariable(loquesea)

truxky
15/10/12, 21:58:09
Muchas gracias.

Ya lo he hecho como me has comentado, y a quedado perfecto.

Muchas gracias a todos por vuestra ayuda

truxky
16/10/12, 13:20:02
Buenas a todos.

Después de que me ayudarais tanto con mi problema de layout, recurro otra vez a vosotros. Sigo con temas de layout, tengo definidos varios layout dependiendo del tamaño de las diferentes pantallas.

Estos son los tamaños que tengo de por ejemplo la portada de la aplicación:

xhdpi -> 640x940
hdpi -> 480x854
mdpi -> 320x480
ldpi -> 240x342

¿Estos valores son correctos no??

Me encuentro con otro problema y es que en esta pantalla que tiene un titulo y una imagen, tengo dos botones en la parte de abajo del layout. Para situarlos tengo diferente el siguiente layout:



<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center_horizontal"
android:background="@drawable/portada"
android:orientation="vertical" >

<Button
android:id="@+id/BotonComenzar"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/tenis"
android:text="@string/Comenzar"
android:textSize="30dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="470dp"/>

<Button
android:id="@+id/BotonCargar"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/cargar"
android:text="@string/Cargar"
android:textSize="30dp"
android:layout_gravity="center_horizontal"
android:visibility="visible"/>

</LinearLayout>



Tengo puesto el dato de: android:layout_marginTop="470dp". Esto en pantallas grandes funciona bien, pero en pantallas pequeñas que no tienen tanto tamaño, me aparecen los botones por debajo. ¿Como puedo solucionarlo?

Un saludo.

kriogeN
16/10/12, 14:42:17
Si lo que quieres es que los botones siempre estén abajo, independientemente del tamaño y tipo de pantalla, puedes usar android:gravity="bottom" en el LinearLayout.

Por supuesto el LinearLayout tendrá que ser wrap_content, como mínimo en altura.

truxky
16/10/12, 23:15:08
Buenas noches

¿¿Los valores para una imagen de background para los diferentes layout es el siguiente??

xhdpi -> 640x940
hdpi -> 480x854
mdpi -> 320x480
ldpi -> 240x342

Un saludo