如何在不混合内容的情况下在webview上显示按钮

时间:2014-04-18 05:53:56

标签: android webview

我正在尝试在webview上创建一个按钮和一个edittext,两者都应该位于页面的后面。在我下面发布的尝试中,我设法在webview上设置了按钮和edittext区域,但问题是,按钮和edittext区域都被网页内容遮蔽或覆盖。有没有办法避免将内容与这些元素混合。

JavaCode:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_web_page00);

    webView00 = (WebView) findViewById(R.id.webView00);
    btnGo = (Button) findViewById(R.id.go_btn);
    etUrl = (EditText) findViewById(R.id.url_edittext);

    webView00.getSettings().setJavaScriptEnabled(true);
    webView00.setWebViewClient(new myWebViewClient());
    webView00.setWebChromeClient(new myWebChromeClient());

    webView00.loadUrl("http://google.com");

XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.webapptest01.WebAppTest01$PlaceholderFragment" >

    <WebView
        android:id="@+id/webView00"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

    <Button
        android:id="@+id/go_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:text="Go!" />

    <EditText
        android:id="@+id/url_edittext"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:minWidth="220dp" />

</RelativeLayout>

2 个答案:

答案 0 :(得分:0)

以下是一种将其保持为单个RelativeLayout(无嵌套布局)并使用android:layout_above属性的方法:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.webapptest01.WebAppTest01$PlaceholderFragment" >

    <Button
        android:id="@+id/go_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:text="Go!" />

    <EditText
        android:id="@+id/url_edittext"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:minWidth="220dp" />

    <WebView
        android:id="@+id/webView00"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@id/url_edittext" />

</RelativeLayout>

答案 1 :(得分:0)

您必须使用框架布局而不是相对布局。

以下是您可以添加此

的xml代码
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <WebView
        android:id="@+id/webView00"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@id/url_edittext" />

    <Button
        android:id="@+id/go_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right|bottom"
        android:text="Go!" />

    <EditText
        android:id="@+id/url_edittext"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:minWidth="220dp" />

</FrameLayout>