Centro de contenido en vista de desplazamiento
Quiero centrar mi LinearLayout dentro de ScrollView. Cuando la altura de LinearLayout es pequeña, está centrada correctamente (ver imagen # 1), pero cuando la altura de LinearLayout es más grande que la altura de la pantalla entonces se comporta extraño. No puedo ver la parte superior de LinearLayout (ver imagen # 2) y en la parte inferior de ScrollView hay gran relleno. No sé qué está pasando aquí. Cuando hay un montón de contenido en LinearLayout toda la pantalla debe verse en la imagen # 3.
Imagen # 1
Imagen # 2
Imagen # 3
- Tema scrollView y pie de página en android
- ¿Por qué no android: windowSoftInputMode = "stateVisible | adjustResize" ajustar la pantalla cuando se muestra el teclado virtual?
- Espacios en blanco usando la vista web de android dentro de scrollview con una red móvil de jQuery
- Cómo hacer encabezados de sección pegajosa (como iOS) en Android?
- Dificultad con ScrollView y LinearLayout
Aquí está mi archivo de diseño:
<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#cccfff" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_margin="28dp" android:background="#ffffff" android:orientation="vertical" android:paddingBottom="40dp" android:paddingLeft="20dp" android:paddingRight="20dp" android:paddingTop="40dp" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="16dp" android:src="@drawable/ic_launcher" /> <TextView android:id="@+id/tip_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="12dp" android:text="Title" android:textColor="@color/orange_text" android:textSize="@dimen/font_size_medium" /> <TextView android:id="@+id/tip_description" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Description description..." android:textSize="@dimen/font_size_small" /> </LinearLayout> </ScrollView>
- Lista colgadaElector en ListView
- Cómo cambiar el color de la actual desplazamiento en ScrollView Android?
- ScrollView: Pasa los eventos de toque a los niños
- Android corta mi texto cuando usa fragmentos
- Múltiples WebViews en ScrollView dando problemas (Android)
- ¿Cómo usar ScrollView en Android?
- Android ScrollView se niega a desplazarse hasta la parte inferior
- Android ScrollView se desplaza a la parte superior después de llamar a setVisibility (View.VISIBLE) en la vista secundaria
Debe utilizar un LinearLayout horizontal externo. Está funcionando para mí en la misma situación.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="horizontal" > <ScrollView android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" > <TextView android:text="@string/your_text" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> </ScrollView> </LinearLayout>
Puedes usar android:fillViewport="true"
para centrar el contenido. Algo como esto:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true"> <!-- content --> </ScrollView>
Establecer el foco en la parte superior de la mayoría de componentes de la interfaz de usuario que desea ver
<ImageView android:focusable="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="16dp" android:src="@drawable/ic_launcher" />
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center" android:padding="10dp" android:background="#cccfff"> <ScrollView android:layout_width="match_parent" android:layout_height="wrap_content" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_margin="28dp" android:background="#ffffff" android:orientation="vertical" android:paddingBottom="40dp" android:paddingLeft="20dp" android:paddingRight="20dp" android:paddingTop="40dp" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="16dp" android:src="@drawable/ic_launcher" /> <TextView android:id="@+id/tip_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="12dp" android:text="Title" android:textColor="@color/orange_text" android:textSize="@dimen/font_size_medium" /> <TextView android:id="@+id/tip_description" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Description description..." android:textSize="@dimen/font_size_small" /> </LinearLayout> </ScrollView> </LinearLayout>
Pruebe esto puede satisfacer sus necesidades.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#cccfff" android:gravity="center" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_margin="10dp" android:background="#ffffff" android:gravity="center_vertical" android:orientation="vertical" android:paddingBottom="40dp" android:paddingLeft="20dp" android:paddingRight="20dp" android:paddingTop="40dp" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="16dp" android:src="@drawable/ic_launcher" /> <TextView android:id="@+id/tip_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="12dp" android:text="Title" /> <TextView android:id="@+id/tip_description" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="biruDescription description..." /> </LinearLayout> </LinearLayout>
Una línea más en tu código java
TextView tip_description = (TextView) findViewById(R.id.tip_description); tip_description.setMovementMethod(new ScrollingMovementMethod());
Esto desplazará el contenido de su descripción más bien todo el diseño.
Trate de poner el margen y los rellenos en ScrollView
Tal vez no está claro cómo funciona el diseño. En su caso usted necesita fijar una disposición externa que llene el padre y tenga la gravedad fijada como centro, adentro tenga una visión de la voluta con la altura wrap_content del diseño y la disposición interna con la altura wrap_content del wrap del diseño también. A continuación, el diseño externo se centrará en la vista de desplazamiento si es menor.
<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center"> <ScrollView android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content"> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content"> <!-- Content here --> </LinearLayout> </ScrollView> </LinearLayout>
- Cambiar texto de otra actividad
- Cómo limitar la altura de la vista desplegable de Spinner en Android