Я разрабатываю приложение для 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» - это идентификатор заголовка, и он скрывается, но пространство, которое оно изначально занимало вверху, остается. Итак, как скрыть это пространство.
Спасибо :)



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Используйте display:none, чтобы полностью скрыть элемент, и настройте display:block, чтобы показать его снова.
Или в вашем случае .style.display='none';
Если вы установите display: none, он скрывает весь элемент, а visibility: hidden означает, что содержимое элемента будет невидимым, но элемент останется в исходном положении и размере.
@Pritish display none полностью скроет элемент и его пространство, если есть еще какое-то пространство, которое вы хотите скрыть, вероятно, все еще есть элемент, который занимает пространство вокруг заголовка, например <div> или что-то
"Я использовал display: none, еще осталось немного места" Невозможно, в этом случае это был какой-то другой элемент, занимающий пространство, display:none полностью удаляет элемент из текстового потока, если вы не используете IE <8.
@mrdeadsven да, пространство принадлежит нижнему элементу, поэтому в основном между заголовком и нижним заголовком есть пространство, так что можно сделать, чтобы переместить нижний заголовок вверх?
@Pritish найдите элемент, который занимает пространство, которое вы хотите удалить, и также дайте ему отображение: none. Таким образом, он также будет полностью скрыт.
На самом деле на ноутбуке это пространство не видно, но на мобильном оно есть, поэтому нужно выяснить, как это происходит с помощью начальной загрузки, все эти материалы на веб-сайте для меня латинские и греческие, нужно время, чтобы узнать :) :) в любом случае спасибо за ответ :)
@Pritish Нет проблем, если вы добавите свой html-код, который вы используете, в свой вопрос и укажете, что все еще занимает пространство (с изображением), мы сможем полностью решить проблему. В противном случае удачи!
попробуйте 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
Вы можете получить документ по URL-адресу с кодом выше. Не забудьте сделать это в другом потоке
Показывать не хочу, использовал display: none, осталось место. Как расположить нижний элемент вверху? после того, как я это спрятал?