#android #button #webview
#Android #кнопка #webview
Вопрос:
Я просмотрел бесчисленные примеры webview с кнопками и не могу заставить ни один из них отображать мои кнопки.
Ниже приведен мой последний макет, и он выглядит правильно в eclipse, но веб-сайт отображается на весь экран при запуске на телефоне.
Любая помощь была бы отличной!
С уважением,
Майк
Комментарии:
1. Пробовал использовать фреймы, не сработало.
Ответ №1:
Если это то, что у вас действительно есть в вашем коде, это даже недопустимый XML, поскольку у вас, похоже, нет общего внешнего тега. Это должно быть что-то вроде следующего :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="match_parent" android:orientation="vertical">
<WebView android:id="@ id/webview"
android:layout_height="0" android:layout_weight="1" android:layout_width="fill_parent" />
<LinearLayout android:orientation="horizontal" android:layout_height="wrap_content"
android:layout_width="fill_parent">
<Button android:id="@ id/back" android:layout_width="wrap_content" android:layout_height="fill_parent"
android:text="Back" />
<Button android:id="@ id/next" android:layout_width="wrap_content" android:layout_height="fill_parent"
android:text="Next" />
</LinearLayout>
</LinearLayout>
PS Я изменяю свой ответ на основе дополнительной информации. Ваша проблема в том, что когда вы загружаете страницу в WebView, она переходит в автономный браузер.
Чтобы справиться с этой проблемой, просто добавьте пользовательский WebViewClient в свой WebView, который просто переопределяет WebViewClient#shouldOverrideUrlLoading
метод. Что-то вроде этого:
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(final WebView view, final String url) {
return super.shouldOverrideUrlLoading(view, url);
}
});
Комментарии:
1. не уверен, почему мой код не прошел через него, у него общий внешний тег. по-прежнему безуспешно.
2. И вам не нужно указывать пространство имен в каких-либо вложенных элементах. Чтобы исправить ваш код, все, что вам нужно сделать, это изменить высоту вашего webview на 0dip, а затем установить вес макета webview равным 1. В противном случае ваш webvie удаляет ваши кнопки с экрана
3. Кстати, установка вашего WebView на фиксированную высоту — определенно плохая идея, поскольку вы не можете поддерживать различные разрешения таким образом
Ответ №2:
Вам нужен родительский элемент, который охватывал бы два отдельных дочерних элемента WebView и LinearLayout
воспользуйтесь ресурсами для разработчиков Android:http://developer.android.com/resources/tutorials/views/hello-linearlayout.html
Это должно выглядеть примерно так:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@ id/webview"
android:layout_width="fill_parent"
android:layout_height="380px"
/>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center_horizontal">
<Button android:id="@ id/back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Back"
android:layout_gravity="center_horizontal"/>
<Button android:id="@ id/next"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Next"
android:layout_gravity="center_horizontal"/>
</LinearLayout>
</LinearLayout>
Комментарии:
1. похоже, что я не уверен, почему мой полный код не прошел. Ваш код тоже не сработал. Веб-сайт с той же проблемой отображается полностью.
2. Чем это отличается от моего ответа?