Как удалить пробел после скрытия элементов xml в веб-представлении

Я разрабатываю приложение для Android и ничего не знаю о css и javascript. Мне нужно показать веб-страницу в моем веб-просмотре, но с некоторыми скрытыми ее элементами. Мой следующий код работает успешно

 @Override
    public void onLoadResource(WebView view, String url) {
        super.onLoadResource(view, url);

      try {
          view.loadUrl("javascript:(function() { " +
                  "document.getElementById('header').style.visibility='collapse';})()");
        /*  view.loadUrl("javascript:(function() { " +
                  "document.getElementById('header').style.visibility='hidden';})()");*/
      }catch (Exception e) {
          e.printStackTrace();
      }
   }

«header» - это идентификатор заголовка, и он скрывается, но пространство, которое оно изначально занимало вверху, остается. Итак, как скрыть это пространство.

Спасибо :)

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
246
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Используйте display:none, чтобы полностью скрыть элемент, и настройте display:block, чтобы показать его снова.

Или в вашем случае .style.display='none';

Если вы установите display: none, он скрывает весь элемент, а visibility: hidden означает, что содержимое элемента будет невидимым, но элемент останется в исходном положении и размере.

Показывать не хочу, использовал display: none, осталось место. Как расположить нижний элемент вверху? после того, как я это спрятал?

Pritish 27.06.2018 10:02

@Pritish display none полностью скроет элемент и его пространство, если есть еще какое-то пространство, которое вы хотите скрыть, вероятно, все еще есть элемент, который занимает пространство вокруг заголовка, например <div> или что-то

mrdeadsven 27.06.2018 10:05

"Я использовал display: none, еще осталось немного места" Невозможно, в этом случае это был какой-то другой элемент, занимающий пространство, display:none полностью удаляет элемент из текстового потока, если вы не используете IE <8.

Teemu 27.06.2018 10:05

@mrdeadsven да, пространство принадлежит нижнему элементу, поэтому в основном между заголовком и нижним заголовком есть пространство, так что можно сделать, чтобы переместить нижний заголовок вверх?

Pritish 27.06.2018 10:08

@Pritish найдите элемент, который занимает пространство, которое вы хотите удалить, и также дайте ему отображение: none. Таким образом, он также будет полностью скрыт.

mrdeadsven 27.06.2018 10:10

На самом деле на ноутбуке это пространство не видно, но на мобильном оно есть, поэтому нужно выяснить, как это происходит с помощью начальной загрузки, все эти материалы на веб-сайте для меня латинские и греческие, нужно время, чтобы узнать :) :) в любом случае спасибо за ответ :)

Pritish 27.06.2018 10:14

@Pritish Нет проблем, если вы добавите свой html-код, который вы используете, в свой вопрос и укажете, что все еще занимает пространство (с изображением), мы сможем полностью решить проблему. В противном случае удачи!

mrdeadsven 27.06.2018 10:20

попробуйте document.getElementById('header').style.display='none'

Я предлагаю использовать Jsoup:

Вы можете удалить тег или идентификатор следующим образом:

public void removeUnusedHTMLTags(org.jsoup.nodes.Document document, String tagClassOrId) {
    Elements categories = document.select(tagClassOrId);
    for (org.jsoup.nodes.Element element : categories){
        Log.v(">>>", "Remove unused tag " + tagClassOrId);
        element.remove();
    }
}

РЕДАКТИРОВАТЬ

Вам необходимо добавить библиотеку Jsoup:

compile 'org.jsoup:jsoup:1.11.3'

Чтобы получить документ:

Connection con = Jsoup.connect(url)
                .ignoreContentType(true);
Connection.Response res = con.execute();
String rawJSON = res.body();
Document document = Jsoup.parse(rawJSON);

Знаете ли вы какой-либо плагин, поскольку объект Elements по умолчанию недоступен в студии Android

Pritish 27.06.2018 10:10

Вы можете получить документ по URL-адресу с кодом выше. Не забудьте сделать это в другом потоке

Liar 27.06.2018 10:22

Другие вопросы по теме