Как поместить один вид над другим в относительном макете программно в андроид?

Я программно создаю представление в android. Родительский макет – относительный макет, и я добавляю в него два вида. Сначала отображается список, а во втором – пользовательский вид. Я хочу, чтобы мое второе пользовательское представление появилось поверх списка, но почему-то оно скрывается за списком. Как я могу убедиться, что мой пользовательский вид сверху.

Solutions Collecting From Web of "Как поместить один вид над другим в относительном макете программно в андроид?"

Представления помещаются в том порядке, в котором вы добавляете их в свои родительские представления. Представление, добавленное последним, будет сверху. Вы также можете попробовать View.bringToFront() http://developer.android.com/reference/android/view/View.html#bringToFront ()

Попробуйте использовать: View.bringToFront();

Решение 1 – View # bringToFront () View.bringToFront() должно работать при правильном использовании. Возможно, вы забыли это (источник: http://developer.android.com/reference/android/view/View.html#bringToFront () ):

Перед KITKAT этот метод должен сопровождаться вызовами requestLayout () и invalidate ()

Решение 2 – повторное подключение

Если View.bringToFront() не будет работать, попробуйте удалить и снова добавить представление. Преимущество состоит в том, что он имеет тот же код для версий до KITKAT.

Я делаю это так в своем коде:

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

Используйте FrameLayout, макет кадра показывает последний добавленный вид сверху ..

Попробуй это :

  <?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> 

Опять же: представления помещаются в макет в том порядке, в котором вы его добавляете. Вопрос в том, действительно ли он скрыт или он не отображает ?. Проверьте ошибки и ошибки в LogCat и Console. Если вы добавите только один пользовательский вид в свой макет, он будет отображаться без каких-либо проблем? Если это так, убедитесь, что вы действительно добавляете свой пользовательский вид в одно и то же родительское представление (группу), когда вы добавляете свой ListView. Если вы не получите больше, укажите соответствующий пример кода.

Это работает для меня:

 <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="kapil@gnxtsystems.com"/> </LinearLayout> </RelativeLayout> 

Я использовал относительную компоновку, и порядок просмотров каким-то образом определяет, какой из них сверху.

 <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"/> 

В этом макете текстовое окно будет находиться поверх панели поиска