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.