Программно создать кнопку "Back" и WebView во весь экран

Нужно программно создать WebView и кнопку над ним, чтобы WebView растянулся на весь экран.

Сейчас у меня такой код. Кнопка и WebView успешно создаются. Но WebView не растянут по ширине и не растянут по высоте.

WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);

Point displaySize = new Point();
getWindowManager().getDefaultDisplay().getSize(displaySize);

m_web = new WebView(this);
m_webViewClient = new YXWebViewClient();
m_web.setWebViewClient(m_webViewClient);
m_web.getSettings().setJavaScriptEnabled(true);
m_web.getSettings().setDomStorageEnabled(true);
m_web.getSettings().setLoadWithOverviewMode(true);
m_web.getSettings().setUseWideViewPort(true);
m_web.setPadding(0, 0, 0, 0);

// clear
m_web.clearCache(true);
m_web.clearFormData();
m_web.clearHistory();
m_web.clearClientCertPreferences(null);
m_web.clearMatches();
m_web.clearSslPreferences();
CookieManager.getInstance().removeAllCookie();

// Button
Button btnTag = new Button(this);
btnTag.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
btnTag.setText("Back");
btnTag.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        Log.d("web_back_button clicked", "");
        runOnUiThread(new CloseWebViewRunnable());
    }
});


m_webTableLayout = new TableLayout(this);
TableRow row1 = new TableRow(this);
row1.addView(btnTag, new TableRow.LayoutParams());
TableRow row2 = new TableRow(this);
row2.addView(m_web, new TableRow.LayoutParams());

m_webTableLayout.addView(row1, new TableLayout.LayoutParams());
m_webTableLayout.addView(row2, new TableLayout.LayoutParams());

WindowManager.LayoutParams tableParams = new WindowManager.LayoutParams();
tableParams.width = WindowManager.LayoutParams.MATCH_PARENT;
tableParams.height = WindowManager.LayoutParams.MATCH_PARENT;
tableParams.gravity = Gravity.START | Gravity.TOP;

wm.addView(m_webTableLayout, tableParams);

m_web.loadUrl(url);

Ответы (1 шт):

Автор решения: Circassian

А зачем вы используете TableLayout? Используйте в качестве контейнера FrameLayout или ConstarintLayout

→ Ссылка