Как создать webview и относительную компоновку в линейной компоновке

#android #android-layout-weight

#Android #android-layout-weight

Вопрос:

У меня есть линейная компоновка, и внутри нее у меня есть webview и относительная компоновка. Я хочу, чтобы webview занимал все свободное пространство и позволял относительному макету сохранять свою высоту в зависимости от содержимого.

Я пробовал несколько способов, но все еще не мог заставить его работать должным образом.

Не мог бы кто-нибудь объяснить мне, как я мог бы заставить webview занимать все свободное пространство и сохранить мой относительный макет внизу с его содержимым в оболочке.

 <?xml version="1.0" encoding="utf-8"?>
  

 <RelativeLayout android:layout_width="fill_parent"
    android:layout_height="wrap_content" android:background="@drawable/titlebar_top">

    <ImageView android:layout_height="wrap_content"
        android:layout_width="wrap_content" android:background="@drawable/logo"
        android:layout_centerHorizontal="true" android:layout_centerVertical="true">
    </ImageView>

    <ImageButton android:layout_height="wrap_content"
        android:layout_width="wrap_content" android:background="@drawable/redarrowright"
        android:layout_alignParentRight="true" android:layout_centerVertical="true"
        android:id="@ id/imgArticlePrevious" android:layout_marginRight="10dip">
    </ImageButton>

    <ImageButton android:id="@ id/imgArticleRight"
        android:layout_height="wrap_content" android:layout_width="wrap_content"
        android:background="@drawable/redarrowleft"
        android:layout_centerVertical="true" android:layout_toLeftOf="@ id/imgArticlePrevious"
        android:layout_marginRight="10dip">
    </ImageButton>
</RelativeLayout>

<TextView
        android:id= "@ id/txtTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Le soleisl sssssssssssssssss"
        android:layout_gravity="center_horizontal"
        android:textSize="22sp"
        android:gravity="center"
        android:textStyle="bold"
        android:maxLines="2">
</TextView>

<LinearLayout android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <TextView
        android:id="@ id/txtCategory" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Info"
        android:textColor="@color/red">
    </TextView>
    <TextView android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:text="|">
    </TextView>
    <TextView android:id="@ id/txtDate" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:text="26/03/2011"
        android:textColor="@color/gray">
    </TextView>
</LinearLayout>


<WebView android:id="@ id/webview" android:layout_width="fill_parent"
    android:layout_height="fill_parent" layout_weight="90" />

<RelativeLayout android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:background="@drawable/articlebanner"
    android:layout_gravity="bottom"
    android:layout_weight="10">

    <ImageButton android:id="@ id/imgComment"
        android:layout_height="wrap_content" android:layout_width="wrap_content"
        android:background="@drawable/commenticon"
        android:layout_centerVertical="true">
    </ImageButton>

    <Button android:id="@ id/txtCommentCount"
        android:layout_height="wrap_content" android:layout_width="wrap_content"
        android:background="@drawable/commentbackground"
        android:layout_marginLeft="10dip" android:text="4" android:textColor="@color/white"
        android:textStyle="bold" android:layout_alignTop="@ id/imgComment">
    </Button>

    <Button android:id="@ id/imgShare" android:layout_height="wrap_content"
        android:layout_width="wrap_content" android:background="@drawable/buttonshare"
        android:layout_alignParentRight="true" android:layout_centerVertical="true"
        android:layout_marginRight="2dip" android:drawableLeft="@drawable/sharebtnicon"
        android:drawablePadding="2dip" android:text="Partagez"
        android:textColor="@color/white" android:textStyle="bold">
    </Button>
</RelativeLayout>
  

Webview — Занимает все пространство, оставшееся между другими виджетами, расположенными сверху и снизу

Комментарии:

1. можете ли вы опубликовать несколько примеров кода ваших попыток?

2. android:layout_width="fill_parent" android:layout_height="fill_parent" layout_weight="90" <- это не имеет смысла. Вы должны установить ось, которую вы хотите увеличить или уменьшить в соответствии с весом, равной 0px.

Ответ №1:

 <?xml version="1.0" encoding="utf-8"?>
  

 <RelativeLayout android:layout_width="fill_parent"
    android:layout_height="wrap_content" android:background="@drawable/titlebar_top">

    <ImageView android:layout_height="wrap_content"
        android:layout_width="wrap_content" android:background="@drawable/logo"
        android:layout_centerHorizontal="true" android:layout_centerVertical="true">
    </ImageView>

    <ImageButton android:layout_height="wrap_content"
        android:layout_width="wrap_content" android:background="@drawable/redarrowright"
        android:layout_alignParentRight="true" android:layout_centerVertical="true"
        android:id="@ id/imgArticlePrevious" android:layout_marginRight="10dip">
    </ImageButton>

    <ImageButton android:id="@ id/imgArticleRight"
        android:layout_height="wrap_content" android:layout_width="wrap_content"
        android:background="@drawable/redarrowleft"
        android:layout_centerVertical="true" android:layout_toLeftOf="@ id/imgArticlePrevious"
        android:layout_marginRight="10dip">
    </ImageButton>
</RelativeLayout>

<TextView
        android:id= "@ id/txtTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=""
        android:layout_gravity="center_horizontal"
        android:textSize="22sp"
        android:gravity="center"
        android:textStyle="bold"
        android:maxLines="2">
</TextView>

<LinearLayout android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <TextView
        android:id="@ id/txtCategory" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Info"
        android:textColor="@color/red">
    </TextView>
    <TextView android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:text="|">
    </TextView>
    <TextView android:id="@ id/txtDate" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:text="26/03/2011"
        android:textColor="@color/gray">
    </TextView>
</LinearLayout>

<RelativeLayout android:layout_width="fill_parent"
    android:layout_height="fill_parent">
<WebView android:id="@ id/webview" android:layout_width="fill_parent"
    android:layout_height="fill_parent" layout_weight="1"
    android:layout_above="@ id/sharebar" />

<RelativeLayout
    android:id="@ id/sharebar"
     android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:background="@drawable/articlebanner"
    android:layout_gravity="bottom" android:layout_alignParentBottom="true">

    <ImageButton android:id="@ id/imgComment"
        android:layout_height="wrap_content" android:layout_width="wrap_content"
        android:background="@drawable/commenticon"
        android:layout_centerVertical="true">
    </ImageButton>

    <Button android:id="@ id/txtCommentCount"
        android:layout_height="wrap_content" android:layout_width="wrap_content"
        android:background="@drawable/commentbackground"
        android:layout_marginLeft="10dip" android:text="4" android:textColor="@color/white"
        android:textStyle="bold" android:layout_alignTop="@ id/imgComment">
    </Button>

    <Button android:id="@ id/imgShare" android:layout_height="wrap_content"
        android:layout_width="wrap_content" android:background="@drawable/buttonshare"
        android:layout_alignParentRight="true" android:layout_centerVertical="true"
        android:layout_marginRight="2dip" android:drawableLeft="@drawable/sharebtnicon"
        android:drawablePadding="2dip" android:text="Partagez"
        android:textColor="@color/white" android:textStyle="bold">
    </Button>
</RelativeLayout>

</RelativeLayout>
  

Решено, я поместил его в другой относительный макет, выровнял панель внизу и установил webview над ней. Сработало 🙂