【问题标题】:Android TextView fill_parentAndroid TextView fill_parent
【发布时间】:2012-05-12 02:21:28
【问题描述】:

我需要构建一个类似于以下的布局:

左边三行是TextView,一开始总高度未知。右边的元素应该是任何可以动态改变其背景颜色的小部件。它应该跨越它的高度来填充父级。

我怎样才能做到这一点?我应该使用什么小部件来显示颜色?还有什么布局?

我为正确的元素使用 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>

【问题讨论】:

    标签: android layout textview fill-parent


    【解决方案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>
    

    【讨论】:

      【解决方案2】:

      你可能不得不使用两个嵌套的线性布局,像这样,我将用一些重要的属性把它存起来:

      <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() 来改变它的颜色。

      【讨论】:

      • 谢谢。我使用了另一个解决方案中提到的 LinearLayout 并且它有效。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-15
      • 2011-09-22
      • 1970-01-01
      相关资源
      最近更新 更多