Проблема с макетом Android с кнопками под WebView
-
16-09-2019 - |
Вопрос
Итак, у меня есть webview, который я хотел бы отобразить в виде диалогового окна.Я бы хотел, чтобы webview заполнял весь экран, за исключением кнопки под ним, которую я хотел бы оставить в нижней части диалогового окна независимо от объема содержимого в webview.В настоящее время мой webview заполняет диалоговое окно ровно настолько, чтобы убрать кнопку с экрана.Я уверен, что это что-то довольно простое, но, хоть убей, я не смог найти волшебную комбинацию макетов, представлений и значений атрибутов, чтобы заставить ее играть красиво.Просто для ясности, я сделал так, чтобы кнопка плавала над webview, но я бы хотел, чтобы webview останавливался прямо над кнопкой и прокручивался, если это имеет смысл.
<RelativeLayout android:id="@+id/RelativeLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<WebView android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<Button android:text="Ok"
android:id="@+id/btnOk"
android:layout_width="120px"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_alignParentBottom="true"
/>
</RelativeLayout>
Решение
Вы захотите использовать android:layout_above="@+ id / btnOk" для вашего webview и выполнить fill_parent для ширины и высоты webview.
Однако важно отметить, что в 1.5 и ниже представления RelativeLayout должны быть указаны для того, чтобы ваш xml был правильно распознан..другими словами, сначала у вас должна быть ваша кнопка, а затем WebView, поскольку WebView будет ссылаться на кнопку.Я думаю, что это было изменено в 1.6 или 2.0, но я не уверен, что именно.
<RelativeLayout android:id="@+id/RelativeLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<Button android:text="Ok"
android:id="@+id/btnOk"
android:layout_width="120px"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"/>
<WebView android:id="@+id/webview"
android:layout_above="@+id/btnOk"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</RelativeLayout>