traer superponer studio otro layout_below frente encima elementos ejemplos amontonados android android-layout relativelayout

superponer - Las dependencias circulares no pueden existir en RelativeLayout, android?



superponer elementos android studio (4)

Tengo el siguiente diseño: necesito mantener el botón en la parte inferior de la pantalla y debe ser visible para el usuario. El resto del diseño debe desplazarse.

<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.vfc.sargroup.SalesOrderActivity$PlaceholderFragment" > <ScrollView android:id="@+id/scrollView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_above="@+id/bottomLinearLayout" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Select Distributor Name" android:textAppearance="?android:attr/textAppearanceMedium" /> <Spinner android:id="@+id/spinner1" android:layout_width="match_parent" android:layout_height="wrap_content" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Payment Collection" android:textAppearance="?android:attr/textAppearanceMedium" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" > </EditText> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Product Category" android:textAppearance="?android:attr/textAppearanceMedium" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" > <requestFocus /> </EditText> <TableLayout android:id="@+id/salesTableLayout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:stretchColumns="*" > </TableLayout> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Total QTY" android:textAppearance="?android:attr/textAppearanceMedium" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" > <requestFocus /> </EditText> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Total Price" android:textAppearance="?android:attr/textAppearanceMedium" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" > <requestFocus /> </EditText> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Remark" android:textAppearance="?android:attr/textAppearanceMedium" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" > </EditText> </LinearLayout> </ScrollView> <LinearLayout android:id="@+id/bottomLinearLayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_below="@+id/scrollView1" android:layout_centerHorizontal="true" android:orientation="vertical" > <Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Submit" /> </LinearLayout> </RelativeLayout>

Solo necesito hacer scroll mi vista y mantener el botón aparecido en la pantalla en la parte inferior.

El problema es con

android:layout_above="@+id/bottomLinearLayout"

Me sale el error

Circular dependencies cannot exist in RelativeLayout

¿Qué pasa con mi diseño?


Añada android:layout_alignParentTop="true" en su scrollView y elimine android:layout_below="@+id/scrollView1" en el bottomLinearLayout.


El problema se debe a que hay una referencia circular en los parámetros de diseño.

Por ejemplo, cuando view B es la vista layout_below A, la vista A no puede hacer referencia a la vista B más abajo, alignRight, etc. Esto también puede existir entre varias vistas: A referencias B hace referencia a C. En ese escenario, C no puede hacer referencia a A debido a una dependencia circular

Usaste :-

bottomLinearLayout está debajo de scrollView1 Y luego dijiste que scrollView1 está arriba de LineLinearLayout

No funciona así. Usa uno


Incluya su vista de desplazamiento dentro de un Diseño relativo.

La estructura será:

<RelativeLayout ...... .... .....> <RelativeLayout ..... ..... .....> <ScrollView .... ... ...> put your staff here </ScrollView> </RelativeLayout> <RelativeLayout .... .... below the above relative layout ...../> <Button .... .... ..../> </RelativeLayout> </RelativeLayout>


No puede decir que bottomLinearLayout está debajo de scrollView1 y luego dice que scrollView1 está arriba deLinearLayout. Solo haz uno, no ambos.

Esto es circular porque tratará de posicionarse después de que descubra dónde está el otro en ... Lo cual está esperando en el primero.