entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Cómo hacer un TextView adaptable - Android

Hola muy buenas amigos desarrolladores.

En esta ocasión vengo con una duda sobre el desarrollo de layouts en android. He creado un LayoutLinear con 2 TextView y 1 ImageView acá el código.

<LinearLayout 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"
    android:orientation="vertical"
    tools:context=".LeerActivity" >

    <TextView
        android:id="@+id/tv_tituloInternaNota"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/nota_titulo"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <ImageView
        android:id="@+id/iv_imagenInternaNota"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/abc_ab_stacked_transparent_dark_holo" />

    <TextView
        android:id="@+id/tv_descripcionInternaNota"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"            
        android:text="@string/nota_descripcion" />

</LinearLayout>

El problema radica en que el último TextView llamado "tv:descripcionInternaNota" corta el texto que contiene, lo que me gustaría saber es como hacer para que este se muestre complemente.

Muchas gracias por su ayuda.

Acá dejo una imagen del problema:

Android-app Villanuevand

4 Respuestas

1voto

Villanuevand Puntos5730

Pues sí, pero no me ha funcionado.
La solución fue usar un "ScrollView", acá coloco el código funcional para uso de otros compañeros desarrolladores.
Muchas gracias a @ leonardo-taide por su ayuda.

<LinearLayout 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" android:scrollbars="vertical" android:orientation="vertical" tools:context=".LeerActivity">
<ScrollView android:id="@+id/sv_nota" android:layout_width="fill_parent" android:layout_height="fill_parent">

    <LinearLayout android:id="@+id/ly_svNota" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical">

         <TextView android:id="@+id/tv_tituloInternaNota" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/nota_titulo" android:textAppearance="?android:attr/textAppearanceLarge">

        <ImageView android:id="@+id/iv_imagenInternaNota" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/abc_ab_stacked_transparent_dark_holo">

        <TextView android:id="@+id/tv_descripcionInternaNota" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/nota_descripcion">
            </LinearLayout>

</ScrollView>

</LinearLayout>

2votos

Leonardo-Tadei Puntos227320

Hola,

dado que el TextView de abajo ocupará lo que sobre de lo usado por el TextView superior y por el ImageView (ambos tienen android:layout_height="wrap_content") lo que se me ocurre es que el texto del TextView de abajo pueda scrollar para poder ver todo el texto.

Para que el texto del TexView inferior sea scrollable, tenés que agreagar:

android:scrollbars = "vertical"

Es algo así lo que estás buscando?

Saludos!

0voto

Villanuevand comentado

Pues sí, pero no me ha funcionado.
La solución fue usar un "ScrollView", acá coloco el código funcional para uso de otros compañeros desarrolladores.
Muchas gracias a @ leonardo-taide por su ayuda.

<LinearLayout 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" android:scrollbars="vertical" android:orientation="vertical" tools:context=".LeerActivity">
    <ScrollView android:id="@+id/sv_nota" android:layout_width="fill_parent" android:layout_height="fill_parent">

        <LinearLayout android:id="@+id/ly_svNota" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical">

             <TextView android:id="@+id/tv_tituloInternaNota" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/nota_titulo" android:textAppearance="?android:attr/textAppearanceLarge">

            <ImageView android:id="@+id/iv_imagenInternaNota" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/abc_ab_stacked_transparent_dark_holo">

            <TextView android:id="@+id/tv_descripcionInternaNota" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/nota_descripcion">
                </LinearLayout>

    </ScrollView>

</LinearLayout>

¿Cómo hago para dar como solucionada esta pregunta? @leonardo-taide

0voto

egoitz_gonzalez comentado

Creo que debes de marcar como mejor respuesta la de Leonardo.

0voto

Leonardo-Tadei comentado

Yo creo que lo correcto sería que @Villanuevand poga su propia solución como respuesta y la marque como "la mejor", ya que si bien se inspiró en mi respuesta, no hizo al TextView scrollable sino que hizo toda la pantalla como scrollable (con el efecto de que para leer el texto de abajo se deja de ver el de arriba o la imagen si es largo.

Yo había entendido que quería que se vea el texto de abajo pero manteniendo a la vista el titular y la imagen, y por eso respondí en ese sentido.

Saludos!

0voto

Villanuevand comentado

Y cómo puedo colocar mi respuesta como correcta?

0voto

Leonardo-Tadei comentado

Cambiás tu comentario a esta pregunta con la respuesta (con el botón de editar) para que en vez de un comentario sea una respuesta. Si ya no es editable, ponés tu texto como una neuva respuesta a tu pregunta.

Luego la marcás como "la mejor" y listo!

1voto

Hay que tener en cuenta que tan extenso es el texto que vas a agregar, si el texto es dinámico y muchas veces puede ser mas del que tienes en la imagen, lo correcto seria como dice @Leonardo-Tadei usar un scrollView.. Te dejo un codigo sencillito que funciona tanto en vertical como horizontal.. Saludos y espero haber aclarado tu duda...

te dejo este link que puse en gitHub

https://github.com/OswaldoSystems/Code4/blob/master/vista_news.xml

0voto

Villanuevand comentado

Hola @ novus-ordo-seclorum gracias por participar en esta pregunta.
Mirando un poco tú código me he encontrado que posee un AbsoluteLayout y las referencia dicen los siguiente con respecto a este:

AbsoluteLayout extends ViewGroup java.lang.Object
↳ android.view.View
↳ android.view.ViewGroup
↳ android.widget.AbsoluteLayout

Known Direct Subclasses WebView This class was deprecated in API level 3.
Use FrameLayout,RelativeLayout or a custom layout instead.

Atento a la utlización de elementos deprecados en tus apps.
Saludos

0voto

Novus Ordo Seclorum comentado

Tienes razón, no me habia tomando el tiempo para leer esta parte de la documentación, tengo una aplicación funcionando actualmente desde la versión 2.x hasta la 4.x y me funciona perfectamente, con todas las resoluciones de pantalla. desde ldpi hasta xhdpi.. Pero tendre que cambiar en mis nuevas apps a RelativeLayouts :/ ni modo.. gracias por tu sugerencia.

0voto

Villanuevand comentado

Estamos para ayudarnos colega!
Gracias por tu tiempo para contestar, ojalá podamos mantener el contacto.

Saludos.

0voto

Alejandro Castillo A comentado

Disculpa novus-ordo-seclorum, debes de leer mas documentación, y no te agüites, el comentario de villanuevand es una critica constructiva :)

-1voto

Como cambio la imagen de profile ? XD todos tienen menos yo jajaja :p

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta