react only one horizontal fillviewport direct child android scrollview

only - ¿Cómo usar ScrollView en Android?



scrollview horizontal android (8)

Cómo utilizar ScrollView

Usar developer.android.com/reference/android/widget/ScrollView.html no es muy difícil. Solo puede agregar uno a su diseño y poner lo que quiera para desplazarse hacia adentro. ScrollView solo toma un niño, así que si quieres poner algunas cosas dentro, debes hacer que lo primero sea algo así como un LinearLayout .

<ScrollView android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <!-- things to scroll --> </LinearLayout> </ScrollView>

Si desea desplazar las cosas horizontalmente, utilice un HorizontalScrollView .

Haciendo que el contenido llene la pantalla

Como se menciona en esta publicación , a veces desea que el contenido de ScrollView llene la pantalla. Por ejemplo, si tenía algunos botones al final de un archivo Léame. Desea que los botones estén siempre al final del texto y en la parte inferior de la pantalla, incluso si el texto no se desplaza.

Si el contenido se desplaza, todo está bien. Sin embargo, si el contenido es más pequeño que el tamaño de la pantalla, los botones no están en la parte inferior.

Esto se puede resolver con una combinación de usar fillViewPort en ScrollView y usar una ponderación de diseño en el contenido. El uso de fillViewPort hace que ScrollView llene el área principal. Al establecer el layout_weight en una de las vistas en LinearLayout la vista se expande para llenar cualquier espacio adicional.

Aquí está el XML

<?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:fillViewport="true"> <--- fillViewport <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:id="@+id/textview" android:layout_height="0dp" <--- android:layout_weight="1" <--- set layout_weight android:layout_width="match_parent" android:padding="6dp" android:text="hello"/> <LinearLayout android:layout_height="wrap_content" <--- wrap_content android:layout_width="match_parent" android:background="@android:drawable/bottom_bar" android:gravity="center_vertical"> <Button android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="Accept" /> <Button android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="Refuse" /> </LinearLayout> </LinearLayout> </ScrollView>

La idea de esta respuesta surgió de una respuesta anterior que ahora se ha eliminado ( enlace para usuarios de 10K ). El contenido de esta respuesta es una actualización y adaptación de este post .

Tengo un archivo de diseño XML, pero el texto se ajusta más al tamaño de la pantalla. ¿Qué necesito hacer para hacer un ScrollView ?

<?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:stretchColumns="1" > <TableRow> <ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dip" android:layout_marginTop="10dip" android:layout_marginRight="5dip" android:tint="#55ff0000" android:src="@drawable/icon" /> </TableRow> <TableRow> <TextView android:id="@+id/name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="3dip" android:text=" Name " /> <TextView android:id="@+id/name1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="left" android:text="Veer" /> </TableRow> <TableRow> <TextView android:id="@+id/age" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="3dip" android:text=" Age" /> <TextView android:id="@+id/age1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="left" android:text="23" /> </TableRow> <TableRow> <TextView android:id="@+id/gender" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="3dip" android:text=" Gender" /> <TextView android:id="@+id/gender1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="left" android:text="Male" /> </TableRow> <TableRow> <TextView android:id="@+id/profession" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="3dip" android:text=" Professsion" /> <TextView android:id="@+id/profession1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="left" android:text="Mobile Developer" /> </TableRow> <TableRow> <TextView android:id="@+id/phone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="3dip" android:text=" Phone" /> <TextView android:id="@+id/phone1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="left" android:text="03333736767" /> </TableRow> <TableRow> <TextView android:id="@+id/email" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="3dip" android:text=" Email" /> <TextView android:id="@+id/email1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="left" android:text="[email protected]" /> </TableRow> <TableRow> <TextView android:id="@+id/hobby" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="3dip" android:text=" Hobby" /> <TextView android:id="@+id/hobby1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="left" android:text="Play Games" /> </TableRow> <TableRow> <TextView android:id="@+id/ilike" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="3dip" android:text=" I like" /> <TextView android:id="@+id/ilike1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="left" android:text="Java, Objective-c" /> </TableRow> <TableRow> <TextView android:id="@+id/idislike" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="3dip" android:text=" I dislike" /> <TextView android:id="@+id/idislike1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="left" android:text="Microsoft" /> </TableRow> <TableRow> <TextView android:id="@+id/address" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="3dip" android:text=" Address" /> <TextView android:id="@+id/address1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="left" android:text="Johar Mor" /> </TableRow> </TableLayout>


Coloque su TableLayout dentro de un diseño ScrollView. Eso resolverá su problema.


Como se dijo anteriormente, puede colocarlo dentro de un ScrollView ... y si desea que la vista de desplazamiento sea horizontal, colóquelo dentro de HorizontalScrollView ... y si desea que su componente (o diseño) sea compatible con ambos, colóquelos dentro de ambos de esta manera. :

<HorizontalScrollView> <ScrollView> <!-- SOME THING --> </ScrollView> </HorizontalScrollView>

y con la configuración de layout_width y layout_height ofcourse.


Hay dos opciones. Puede hacer que todo su diseño sea desplazable o solo TextView para ser desplazable.

Para el primer caso,

<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent" > <TableLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:stretchColumns="1" > <TableRow> <ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dip" android:layout_marginRight="5dip" android:layout_marginTop="10dip" android:src="@drawable/icon" android:tint="#55ff0000" > </ImageView> </TableRow> <TableRow> <TextView android:id="@+id/name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="3dip" android:text=" Name " > </TextView> <TextView android:id="@+id/name1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="left" android:text="Veer" > </TextView> </TableRow> <TableRow> <TextView android:id="@+id/age" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="3dip" android:text=" Age" > </TextView> <TextView android:id="@+id/age1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="left" android:text="23" > </TextView> </TableRow> <TableRow> <TextView android:id="@+id/gender" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="3dip" android:text=" Gender" > </TextView> <TextView android:id="@+id/gender1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="left" android:text="Male" > </TextView> </TableRow> <TableRow> <TextView android:id="@+id/profession" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="3dip" android:text=" Professsion" > </TextView> <TextView android:id="@+id/profession1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="left" android:text="Mobile Developer" > </TextView> </TableRow> <TableRow> <TextView android:id="@+id/phone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="3dip" android:text=" Phone" > </TextView> <TextView android:id="@+id/phone1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="left" android:text="03333736767" > </TextView> </TableRow> <TableRow> <TextView android:id="@+id/email" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="3dip" android:text=" Email" > </TextView> <TextView android:id="@+id/email1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="left" android:text="[email protected]" > </TextView> </TableRow> <TableRow> <TextView android:id="@+id/hobby" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="3dip" android:text=" Hobby" > </TextView> <TextView android:id="@+id/hobby1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="left" android:text="Play Games" > </TextView> </TableRow> <TableRow> <TextView android:id="@+id/ilike" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="3dip" android:text=" I like" > </TextView> <TextView android:id="@+id/ilike1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="left" android:text="Java, Objective-c" > </TextView> </TableRow> <TableRow> <TextView android:id="@+id/idislike" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="3dip" android:text=" I dislike" > </TextView> <TextView android:id="@+id/idislike1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="left" android:text="Microsoft" > </TextView> </TableRow> <TableRow> <TextView android:id="@+id/address" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="3dip" android:text=" Address" > </TextView> <TextView android:id="@+id/address1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="left" android:text="Johar Mor" > </TextView> </TableRow> <Relativelayout> </Relativelayout> </TableLayout> </RelativeLayout> </ScrollView>

o, como dije, puedes usar scrollView para TextView solo.


Para desplazar datos en la vista de texto, puede usar esto para su vista de texto. y agregue y para cualquier otro diseño, simplemente puede agregar una vista de desplazamiento en el diseño como la gente dice arriba.

/ ** android: scrollable = true en textview en diseño xml.

TextView txtScroll = (TextView) findViewById(R.id.txt1); txtScroll.setMovementMethod(new ScrollingMovementMethod());

* //


Simplemente haga que el diseño de nivel superior sea ScrollView:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true"> <TableLayout android:layout_width="match_parent" android:layout_height="match_parent" android:stretchColumns="1"> <!-- everything you already have --> </TableLayout> </ScrollView>


Un ScrollView es un tipo especial de FrameLayout porque permite a los usuarios desplazarse por una lista de vistas que ocupan más espacio que la pantalla física. Solo agrego algunos atributos.

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:fillViewport="true" android:scrollbars = "vertical" android:scrollbarStyle="insideInset" > <TableLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:stretchColumns="1" > <!-- Add here which you want --> </TableLayout> </ScrollView>


<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TableLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:stretchColumns="1" > <TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content" > <RadioGroup android:layout_width="fill_parent" android:layout_height="match_parent" > <RadioButton android:id="@+id/butonSecim1" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" android:layout_weight=".50" android:text="@string/buton1Text" /> <RadioButton android:id="@+id/butonSecim2" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" android:layout_weight=".50" android:text="@string/buton2Text" /> </RadioGroup> </TableRow> <TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TableLayout android:id="@+id/bilgiAlani" android:layout_width="fill_parent" android:layout_height="fill_parent" android:visibility="invisible" > <TableRow android:id="@+id/BilgiAlanitableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/bilgiMesaji" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight=".100" android:ems="10" android:gravity="left|top" android:inputType="textMultiLine" /> </TableRow> </TableLayout> </TableRow> <TableRow android:id="@+id/tableRow3" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/metin4" android:layout_height="match_parent" android:layout_weight=".100" android:text="deneme" /> </TableRow> <TableRow android:id="@+id/tableRow4" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/metin5" android:layout_height="match_parent" android:layout_weight=".100" android:text="deneme" /> </TableRow> </TableLayout> </ScrollView>