android добавить кнопку в конце webview (перекрывающиеся веб-страницы)

У меня есть webview с URL веб-сайта,
сайт около 1000px(может меняться)
Я хотел бы кнопку, чтобы показать в конце URL (на футер перекрывается)

Если выше не возможно, то кнопка должна всегда появляться в нижней части webview чуть выше кнопки «Домой» и «назад».

Ниже то, что я пытался.

Заранее благодарим за помощь и поддержку.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
android_layout_width="fill_parent"
android_layout_height="fill_parent"
android_orientation="horizontal">

<WebView 
    android_id="@+id/webView"
    android_layout_width="fill_parent"
    android_layout_height="fill_parent">

    <Button
        android_id="@+id/buttonUrl"
        android_layout_width="fill_parent"
        android_layout_height="wrap_content"
        android_layout_alignParentBottom="true"
        android_layout_gravity="bottom"
        android_text="XXX" />

</WebView>

4 ответа

  1. попробовать это:

     <LinearLayout 
        android_id="@+id/LinearLayout01"
        android_layout_width="fill_parent"
        android_layout_height="fill_parent"
        android_orientation="vertical">
    
        <WebView
            android_id="@+id/webview1"
            android_layout_width="fill_parent"
            android_layout_height="fill_parent"
            android_layout_above="@+id/btnOk"
            android_layout_weight="1" />
    
        <Button
            android_id="@+id/btnOk"
            android_layout_width="120dp"
            android_layout_height="wrap_content"
            android_layout_centerHorizontal="true"
            android_layout_gravity="center_horizontal"
            android_text="Ok" />
    </LinearLayout>
    
  2. Попробуйте использовать линейный макет с вертикальной ориентацией вместо относительного..

  3. RelativeLayout-это группа представлений, которая отображает дочерние представления в относительных положениях. Вы пытались добавить кнопку внутри weview, которая является неправильной реализацией.

    <?xml version="1.0" encoding="utf-8"?>
      <RelativeLayout 
          android_layout_width="fill_parent"
          android_layout_height="fill_parent"
          android_orientation="horizontal">
        <Button
            android_id="@+id/buttonUrl"
            android_layout_width="fill_parent"
            android_layout_height="wrap_content"
            android_layout_alignParentBottom="true"
            android_layout_gravity="bottom"
            android_text="XXX" />
        <WebView android_id="@+id/webView"
            android_layout_width="fill_parent"
            android_layout_height="fill_parent"/>
      </RelativeLayout>
    
  4. если я правильно понял, Вы упомянули, что хотите заменить нижний колонтитул сайта вашей собственной кнопкой справа? Вы можете сделать так.. он будет размещаться как статическая кнопка, накладывающаяся на макет webview. Необходимо убедиться, что высота нижнего колонтитула совпадает с высотой кнопки, которую необходимо наложить.

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout 
        android_layout_width="match_parent"
        android_layout_height="match_parent">
        <WebView android_id="@+id/webView"
            android_layout_width="match_parent"
            android_layout_height="match_parent"/>
        <Button
            android_id="@+id/buttonUrl"
            android_layout_width="match_parent"
            android_layout_height="wrap_content"
            android_layout_alignParentBottom="true"
            style="?attr/borderlessButtonStyle"
            android_background="@android:color/white"
            android_text="XXX" />
    </RelativeLayout>
    

    Используйте метод ниже, чтобы изменить высоту кнопки, чтобы быть таким же, как ваш сайт нижний колонтитул

    бывший:

    buttonUrl.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, pxToDP(1000)));
    
    
    public static int pxToDp(int px) {
        return (int) (px / Resources.getSystem().getDisplayMetrics().density);
    }
    
    public static int dpToPx(int dp) {
        return (int) (dp * Resources.getSystem().getDisplayMetrics().density);
    }