#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 над ней. Сработало 🙂