Как в android расположить один элемент поверх другого?
Есть разметка xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
tools:context=".DollarActivity">
<TextView
android:id="@+id/dollarText"
android:text="text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp"
android:layout_above="@+id/dollarButton"
android:layout_centerInParent="true"
/>
<Button
android:id="@+id/dollarButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="32sp"
android:text="@string/compare"
android:layout_centerInParent="true"/>
<WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</RelativeLayout>
В программе, к которой относится эта разметка, WebView должно запускаться по нажатию кнопки, а до этого на экране должны располагаться TextView и Button. Проблема в том, что когда я запускаю приложение, Button отображается, а TextView нет. Подскажите, пожалуйста, как это исправить P.S. Я знаю, что можно вывести WebView в отдельной активности, но мне интересно, можно ли сделать это в той же активности, в которой находятся другие элементы
Ответы (1 шт):
Автор решения: woesss
→ Ссылка
Есть несколько вариантов.
- Две разметки, два фрагмента - первый выводится сразу, второй его заменяет по нажатию кнопки.
- По нажатию кнопка и текст скрываются методом
View.setVisibility(GONE), дополнительно можно изначально скрытьWebViewв разметке атрибутомandroid:visibility="gone", а по нажатию показать тем же методом:view.setVisibility(VISIBLE). Тот же подход можно применять и к контейнерам - вместе с ними будут скрываться/отображаться все элементы, размещённые внутри. - Программно удалить кнопку и текст из контейнера, создать и добавить
WebView Сменить разметку активности на другую методом
setContentView()или создатьWebViewпрограммно и заменить им разметку тем же методом. Очень упрощённый пример:WebView webView = new WebView(activity); activity.setContentView(webView);