我需要构建类似于以下内容的布局:
左边的三行是TextViews,其总高度在开头是未知的。右边的元素应该是可以动态更改其背景颜色的任何窗口小部件。它应该跨越它的高度来填补父母。
我怎样才能做到这一点?我应该用什么小部件来显示颜色?什么布局?
我使用TextView为右侧元素尝试了以下操作,但它没有填充父级。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:id="@+id/txtRow_color"
android:layout_width="10dip"
android:layout_height="fill_parent"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:background="#ff23cf"
android:text="" />
<TextView
android:id="@+id/txtRow_name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@id/txtRow_color"
android:textColor="#FFFF66"
android:text="@string/nullstring" />
<TextView
android:id="@+id/txtRow_Tweet"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentBottom="true"
android:layout_below="@id/txtRow_name"
android:layout_toLeftOf="@id/txtRow_color"
android:layout_alignWithParentIfMissing="true"
android:gravity="center_vertical"
android:text="@string/nullstring" />
</RelativeLayout>
答案 0 :(得分:1)
可以尝试
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:orientation="horizontal" android:weightSum="1">
<LinearLayout android:layout_width="0dp"
android:layout_height="wrap_content" android:orientation="vertical"
android:layout_weight=".8">
<TextView android:id="@+id/te" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="Text1" />
<TextView android:id="@+id/tile" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="Text2" />
<TextView android:id="@+id/e" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="Text3" />
</LinearLayout>
<LinearLayout android:layout_width="0dp"
android:layout_height="fill_parent" android:layout_weight=".2"
android:background="@color/green">
</LinearLayout>
</LinearLayout>
答案 1 :(得分:0)
你可能不得不使用两个嵌套的LinearLayouts,就像这样,我只是将它与一些重要的属性一起存在:
<LinearLayout android:orientation= "horizontal">
<LinearLayout android:orientation= "vertical" android:layout_height="fill_parent">
<TextView android:layout_width="fill_parent" />
<TextView android:layout_width="fill_parent" />
<TextView android:layout_width="fill_parent" />
</LinearLayout>
<ImageView android:layout_height="fill_parent" />
</LinearLayout>
由于您只是显示纯色,因此可以使用其他一些视图而不是图像视图,这只是一个示例。您可以在ImageView上使用setBackgroundColor()
来更改它的颜色。