vistas studio son que programacion móviles libros las desarrollo desarrollar curso aprende aplicaciones android relativelayout

studio - ¿Cómo colocar una vista sobre otra en el diseño relativo programáticamente en Android?



programacion android pdf 2018 (10)

Esto funciona para mí:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="220dp" android:gravity="bottom" android:orientation="vertical" android:theme="@style/ThemeOverlay.AppCompat.Dark"> <ImageView android:id="@+id/details_wrapper" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:paddingBottom="16dip" android:scaleType="centerCrop" android:src="@drawable/temp_nav_image"> </ImageView> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingTop="@dimen/nav_header_vertical_spacing" android:text="Kapil Rajput" android:textStyle="bold" android:textColor="@android:color/black" android:textAppearance="@style/TextAppearance.AppCompat.Body1"/> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@android:color/black" android:textStyle="bold" android:text="[email protected]"/> </LinearLayout> </RelativeLayout>

Estoy creando programáticamente la vista en Android. El diseño de los padres es un diseño relativo y estoy agregando dos vistas en él. La primera es la vista de lista y la segunda es la vista personalizada. Quiero que mi segunda vista personalizada aparezca en la parte superior de la lista, pero de alguna manera se oculta detrás de la vista de lista. ¿Cómo me aseguro de que mi vista personalizada esté en la parte superior?


Nuevamente: las vistas se colocan en el diseño en el orden en que se agregan. La pregunta es: ¿está realmente oculto o no se procesa? Compruebe LogCat y la consola para los errores. Si solo agrega esta vista personalizada única a su diseño, ¿se procesa sin ningún problema? Si es así, asegúrese de que realmente agrega su costumbre a la misma vista principal (grupo), al agregar su ListView. Si no obtiene más, proporcione el código de muestra correspondiente.


Prueba esto :

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <ListView android:id="@+id/list" android:layout_width="match_parent" android:layout_height="match_parent" /> <YourCustomView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" /> </RelativeLayout>


Trate de usar: View.bringToFront();


Use FrameLayout, el diseño del cuadro muestra la última vista agregada en la parte superior ..


Utilicé el diseño relativo y el orden de las vistas determina de alguna manera cuál está en la parte superior.

<RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1"> <SeekBar android:layout_width="match_parent" android:layout_height="wrap_content" android:splitTrack="false" android:layout_alignParentTop="true" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true"/>

En este diseño, la vista de texto estará en la parte superior de la barra de búsqueda


lo que deberías hacer es usar android:layout_below o android:layout_above . por lo que debe hacer esto:

RelativeLayout.LayoutParams params= new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT); params.addRule(RelativeLayout.BELOW, R.id.below_id); viewToLayout.setLayoutParams(params);

Y te sugiero que eches un vistazo a esta respuesta.

espero que esto ayude


Realice la vista principal como diseño relativo y agregue ambas vistas en xml. No funcionará para Diseño lineal. Y luego agregue FirstView.bringToFront () programtically.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@mipmap/bg" android:orientation="vertical" android:padding="15dp"> <ImageView android:id="@+id/imgIcon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_gravity="center" android:layout_marginBottom="-30dp" android:layout_marginTop="30dp" android:src="@mipmap/login_logo" /> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/imgIcon" android:layout_gravity="bottom" android:background="#B3FFFFFF" android:gravity="center" android:orientation="vertical" android:paddingLeft="10dp" android:paddingRight="10dp"> <View 1/> <View 2/> </LinearLayout>

Java file imgIcon.brigtToFront();


Solución 1: Vista # bringToFront () View.bringToFront() debería funcionar si se usa correctamente. Quizás olvidó esto (fuente: http://developer.android.com/reference/android/view/View.html#bringToFront() ):

Antes de KITKAT, este método debe ir seguido de llamadas a requestLayout () e invalidate ()

Solución 2 - Vuelva a colocar la vista

Si View.bringToFront() no funciona, intente eliminar y agregar la vista nuevamente. La ventaja es que también tiene el mismo código en las versiones pre-KITKAT.

Lo estoy haciendo de esta manera en mi código:

ViewGroup parentView = (ViewGroup) (listView.getParent()); parentView.removeView(addFab); parentView.addView(addFab);