У меня есть WebView
и собственный пользовательский вид, который я хочу добавить под WebView
. Я попробовал обернуть WebView
внутри ScrollView
, и, хотя это делает именно то, что я хочу, производительность прокрутки очень отсталая, и если пользователь бросает прокрутку, нажатие на экран не останавливает всплывающее окно, как должно.Добавить собственный нижний колонтитул в webview
Другой подход, который я думал, было раздувать WebView
в обертку FrameLayout
с моей точки зрения колонтитула на вершине WebView
, а затем каким-то образом расширить WebView
высоту, чтобы приспособить размер колонтитула, нажмите на вид колонтитула к концу WebView
s, а затем просмотрите прокрутку WebView
, чтобы переместить нижний колонтитул с ней.
Я установил базовый класс, моя проблема заключается в расширении прокручиваемого содержимого в WebView
, а затем нажатии нижнего колонтитула на нижнюю часть содержимого WebView
; основная проблема заключается в том, что WebView
не является вашим типичным видом Android, и содержимое страницы загружается асинхронно (и, следовательно, изменяется размер контента).
Как продлить прокручиваемый контент WebView
? И как я могу установить нижний колонтитул ниже содержимого WebView
?
EDIT:
Я на самом деле не использовать XML, представление строится в коде следующим образом:
public class WebViewWithFooter extends FrameLayout {
private ObservableWebView mWebView;//webview with scroll methods overridden for access
private FrameLayout mFooterContainer;
public WebViewWithFooter(Context context) {
super(context);
init();
}
public WebViewWithFooter(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public WebViewWithFooter(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public WebViewWithFooter(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
init();
}
private void init() {
FrameLayout.LayoutParams footerParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, Gravity.BOTTOM);
FrameLayout.LayoutParams webviewParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
mWebView = new ObservableWebView(getContext());
mFooterContainer = new FrameLayout(getContext());
addView(mWebView, webviewParams);
addView(mFooterContainer, footerParams);
}
}
Вы могли бы показать свой xml-макет? – eduyayo
отредактировал код выше с моим классом (там нет xml, поскольку он сконструирован в коде) – AndroidNoob
возможно, вы можете рассмотреть возможность создания своей пользовательской группы просмотра, задачей которой является компоновка веб-представления и нижнего колонтитула. Я чувствую, что если вы хотите точно контролировать то, как вы описали, лучше всего сделать макет самостоятельно. –