我尝试在一个LinearLayout
上由3个元素组成的重量加上TextView
,以占用最多可用空间。布局的方向是垂直的,我在weight="1"
上应用TextView
而在其他两个元素上没有重量,以强制它们放在屏幕的底部。但它不起作用,因为“大”TextView
根本不占空间而LinearLayout
的第二个元素,即Relativelayout
占据整个空间。这是布局:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:weightSum="1" >
<TextView
android:id="@+id/txt_message"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:isScrollContainer="true"
android:maxLines="100000000" >
</TextView>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:id="@+id/answer_panel"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<View
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="@color/my_color"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:text="@string/answer_lbl">
</TextView>
<TextView
android:id="@+id/txt_answer"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:isScrollContainer="true"
android:lines="6"
android:maxLines="100000000">
</TextView>
<View
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="@color/my_color"/>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="5dp"
android:layout_alignParentBottom="true"
android:gravity="center">
<Button android:id="@+id/my_button"
android:layout_height="wrap_content"
android:focusable="false"
android:layout_width="wrap_content"
android:background="@color/my_button"
android:textSize="14sp"
android:textColor="@color/background_color"
android:text="@string/txt_my_button"/>
</LinearLayout>
</RelativeLayout>
</LinearLayout>
我还尝试将txt_message TextView
嵌入Linearlayout
,但它不会改变任何内容。如何将元素放在屏幕底部的Relativelayout
中,让第一个TextView
占据剩余空间?
答案 0 :(得分:0)
让你顶部线性布局高度android:layout_height =&#34; fill_parent&#34;或(&#34; match_parent&#34;) 现在它是包装内容..并删除相对布局 - 它没有为你做任何工作
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/txt_message"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="#ffff00"
android:isScrollContainer="true"
android:maxLines="100000000" >
</TextView>
<LinearLayout
android:id="@+id/answer_panel"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<View
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#ff0000" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginTop="5dp"
android:text="sddsds" >
</TextView>
<TextView
android:id="@+id/txt_answer"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:isScrollContainer="true"
android:lines="6"
android:maxLines="100000000" >
</TextView>
<View
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#ff0000" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginTop="10dp"
android:gravity="center"
android:orientation="horizontal" >
<Button
android:id="@+id/my_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#ff0000"
android:focusable="false"
android:text="dfgfdgfdg"
android:textColor="#ff00ff"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>
答案 1 :(得分:0)
如果你想让textview比linearlayout中的其他元素有更多的权重,例如,给textview一个权重5,其余项目的权重为1.玩权重......
其他选项可能是推出LinearLayout,RelativeLayout具有固定高度...如果您的父Viewgroup是RelativeLayout,请将RelativeLayout与android放置:layout_alignParentBottom =&#34; true&#34;属性。如果是LinearLayout,则应该使用第一个选项。
阅读完评论后,您可以使用:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/txt_message"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:isScrollContainer="true"
android:maxLines="100000000"
android:above="@+id/relativeLayoutContainer" >
</TextView>
<RelativeLayout
android:id="@+id/relativeLayoutContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true" >
<LinearLayout
android:id="@+id/answer_panel"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<View
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="@color/my_color"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:text="@string/answer_lbl">
</TextView>
<TextView
android:id="@+id/txt_answer"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:isScrollContainer="true"
android:lines="6"
android:maxLines="100000000">
</TextView>
<View
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="@color/my_color"/>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="5dp"
android:layout_alignParentBottom="true"
android:gravity="center">
<Button android:id="@+id/my_button"
android:layout_height="wrap_content"
android:focusable="false"
android:layout_width="wrap_content"
android:background="@color/my_button"
android:textSize="14sp"
android:textColor="@color/background_color"
android:text="@string/txt_my_button"/>
</LinearLayout>
</RelativeLayout>
</RelativeLayout>