【问题标题】:Want to set the text into bottom of linearlayout inside a table row想要将文本设置到表格行内的线性布局底部
【发布时间】:2014-11-01 04:30:30
【问题描述】:

我有这样的布局:

  <TableRow
    android:id="@+id/tableRow1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

    <LinearLayout
        android:id="@+id/titles1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_marginTop="0dp"
        android:orientation="vertical"
        android:paddingLeft="0dp"
        android:paddingRight="0dp"
        android:paddingTop="0dp" >

        <TextView
            android:id="@+id/firstLine1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="First Row"
            android:textSize="20sp" >
        </TextView>

        <TextView
            android:id="@+id/secondLine1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:gravity="bottom"
            android:text="2nd Row"
            android:textSize="16sp" >
        </TextView>
    </LinearLayout>

    <ImageView
        android:id="@+id/logo1"
        android:layout_marginTop="0dp"
        android:paddingTop="0dp"
        android:src="@drawable/dji" >
    </ImageView>
  </TableRow>
</TableLayout>

我尝试将第二行设置为该表格行内布局的底部,并且该线性布局将占用整个行空间。我试图调整参数,但到目前为止,我无法做到。

有什么建议吗?我的布局好吗?还是其他更好的选择?

它显示了类似的布局。

【问题讨论】:

    标签: android android-layout layout tablelayout tablerow


    【解决方案1】:

    尝试使用layout_weight 属性(documentation)。您可以使用固定的height 设置第一个和第二个TextView 并添加一个占位符View 并将height 设置为0weight 设置为1。我希望这会有所帮助:)

    <LinearLayout
        android:id="@+id/titles1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_marginTop="0dp"
        android:orientation="vertical"
        android:paddingLeft="0dp"
        android:paddingRight="0dp"
        android:paddingTop="0dp" >
    
        <TextView
            android:id="@+id/firstLine1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="First Row"
            android:textSize="20sp" >
        </TextView>
    
        <TextView
            android:id="@+id/palceholder"
            android:layout_width="match_parent"
            android:layout_height="0"
            android:layout_weight="1">
    
        <TextView
            android:id="@+id/secondLine1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="2nd Row"
            android:textSize="16sp" >
        </TextView>
    </LinearLayout>
    

    【讨论】:

    • 是的,它运行良好。这就是我想要的,我需要了解更多,非常感谢。
    • 太好了,很高兴读到这篇文章!如果是这样,我可以请你接受答案:)
    • 不带占位符,只设置lineOne weight=0 and height="wrap_content",lineTwo weight=1 and height="wrap_content"也可以。
    【解决方案2】:

    将您的 LinearLayout 转换为 FrameLayout:

    <FrameLayout
        android:id="@+id/titles1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_marginTop="0dp"
        android:paddingLeft="0dp"
        android:paddingRight="0dp"
        android:paddingTop="0dp">
    
        <TextView
            android:id="@+id/firstLine1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="top"
            android:text="First Row"
            android:textSize="20sp">
        </TextView>
    
        <TextView
            android:id="@+id/secondLine1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:text="2nd Row"
            android:textSize="16sp">
        </TextView>
    </FrameLayout>
    

    或者在 LinearLayout 上使用权重:

    <LinearLayout
        android:id="@+id/titles1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_marginTop="0dp"
        android:orientation="vertical"
        android:paddingLeft="0dp"
        android:paddingRight="0dp"
        android:paddingTop="0dp">
    
        <TextView
            android:id="@+id/firstLine1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0.5"
            android:gravity="top"
            android:text="First Row"
            android:textSize="20sp">
        </TextView>
    
        <TextView
            android:id="@+id/secondLine1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0.5"
            android:gravity="bottom"
            android:text="2nd Row"
            android:textSize="16sp">
        </TextView>
    </LinearLayout>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多