Webview с кнопками в нижней части представления

#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. Чем это отличается от моего ответа?