Cómo evitar que otra vista sea expulsada de la pantalla
Este es el ejemplo XML
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_margin="5dip" android:background="#FF992222"> <ScrollView android:layout_height="wrap_content" android:layout_width="fill_parent"> <LinearLayout android:layout_height="wrap_content" android:orientation="vertical" android:layout_width="fill_parent"> <TextView android:layout_width="wrap_content" android:text="TextView" android:layout_height="wrap_content" android:textSize="24dip"></TextView> </LinearLayout> </ScrollView> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_margin="5dip" android:background="#FF555555"> <TextView android:layout_width="wrap_content" android:text="TextView" android:layout_height="wrap_content" android:textSize="24dip"></TextView> </LinearLayout> </LinearLayout>
El resultado es así:
- ¿Cómo desplazarse a la parte superior del diseño de ScrollView largo?
- ¿Cambiar la pestaña de desplazamiento / desplazamiento en combinación con ScrollView?
- Custom ViewPager dentro de ObservableScrollView no se mide correctamente la altura
- ScrollView - ¿Cómo desplazarse hacia abajo mientras se diseña el diseño en Eclipse?
- Horizontal RecyclerView interior vertical ScrollView
Si observa, el texto en LinerLayout superior se envuelve en LinearLayout y ScrollView.
Si el contenido superior se añade, se verá así
Bottom Linearlayout se empujará fuera de la pantalla antes de que el ScrollView se active y hacer que el primer contenido sea desplazable … Y no quiero que eso suceda …
¿Qué debo hacer para que el Scrollview antes de que la vista inferior sea expulsado de la pantalla de esta manera:
(Esta imagen es editada y no creada por el editor de Android Layout)
Espero que la cuestión clara suficiente .. Gracias 🙂
- Android: agrega dinámicamente una vista de imagen a un ScrollView
- Android View.OnKeyListener: haga clic una vez, ejecute dos veces
- ScrollView no cambia de tamaño directamente después de cambios secundarios
- Android: arrastrar en MPAndroidChart no responde cuando está contenido en ScrollView
- Artículo Sticky ScrollView en la parte inferior - Android
- Desplácese a una vista específica en la vista de desplazamiento
- Ocultar FAB en NestedScrollView al desplazarse
- Desplácese hasta la última línea de TableLayout dentro de ScrollView
Bueno, si entiendo que la pregunta es clara, quiere que el TextView en gris permanezca inmóvil, mientras que el textViews en rojo se puede desplazar alrededor, corregirme si estoy equivocado aquí. Si eso es lo que quieres, entonces puedes usar RelativeLayout para lograrlo. A continuación se muestra el código para producir una salida como:
http://imageshack.us/photo/my-images/836/device20111011012652.png/
Las entradas de ListView son desplazables mientras que el botón (en su caso debe ser un TextView) permanece donde está.
Código:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ListView android:id="@android:id/list" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/newtask" android:layout_alignParentTop="true"> </ListView> <Button android:layout_width="fill_parent" android:id="@+id/newtask" android:layout_height="wrap_content" android:text="Add New Task" android:layout_alignParentBottom="true"> </Button> </RelativeLayout>
Sólo tienes que cambiar el botón inferior a un TextView y que coincida con lo que quería.
Me tomó una cantidad de tiempo loco para averiguar esto, no hay información en la red, pero finalmente lo conseguí. ¡Disfrutar!
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/mainlayout" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="center_vertical" android:orientation="vertical" > <LinearLayout android:id="@+id/LL" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:gravity="center_vertical" android:layout_centerVertical="true" android:orientation="vertical" android:weightSum="1" > <ScrollView android:id="@+id/scrollView" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/TV1" android:layout_margin="5dp" android:layout_weight="1" android:fillViewport="true" > <TextView android:id="@+id/TV2" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" /> </ScrollView> <LinearLayout android:id="@+id/linearLayout1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginTop="5dp" android:layout_weight="0" android:orientation="horizontal" > <TextView android:layout_width="wrap_content" android:text="TextView" android:layout_height="wrap_content" android:textSize="24dip"></TextView> </LinearLayout> </LinearLayout>
Prueba esto. La clave es usar layout_weight dentro del diseño lineal.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ScrollView android:layout_height="0dp" android:layout_weight="1" android:layout_width="fill_parent"> .... </ScrollView> <TextView android:layout_width="fill_parent" android:text="TextView" android:layout_height="wrap_content" android:textSize="24dip"/> </LinearLayout>
- Android SQLite: intenta volver a abrir un objeto ya cerrado
- Relación uno-a-muchos en ORMLite Android