如何在LinearLayout的右对齐和底部布局视图

时间:2010-04-18 21:38:38

标签: android

我正在尝试将1个textview(upText)左对齐和1 textview(downText)和一个图像视图(图像)布局在同一行并右对齐。

我该怎么做?我试过了,但左边的“textview”和图片视图都对齐了。

        <TextView
            android:id="@+id/uptext"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="left"/>
        <TextView
            android:id="@+id/downtext"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:singleLine="true"
            android:gravity="right|bottom"/>
        <ImageView
            android:id="@+id/image"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="right|bottom"/>
    </LinearLayout>

3 个答案:

答案 0 :(得分:23)

请勿使用LinearLayout。使用RelativeLayout

  • 您的第一个TextView设置为android:layout_alignParentLeft="true"
  • 您的第二个TextView设置为android:layout_alignParentBottom="true"android:layout_alignParentRight="true"
  • 类似于ImageView的内容,目前看起来会与第二个TextView
  • 重叠

答案 1 :(得分:0)

我意识到这篇文章有点陈旧,但万一有人为了清晰起见而遇到这个问题;

父线性布局是需要为孩子指定重力以使其与所需行为一致的地方,这就是为什么上述帖子解释为线性布局不可能发生两个单独的行为,因为一个孩子不能决定在线性布局中对齐的位置

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="200dp"
android:layout_height="50dp"
android:gravity="bottom|right">

<TextView
    android:layout_width="40dp"
    android:layout_height="20dp" 
    android:text="test"/></LinearLayout>

还应该说父线性布局必须具有已定义的大小而不是包含内容,否则这将无法工作,因为换行内容意味着布局中没有额外的空间用于定位,所以至少'对于宽度和高度,match-parent'是必要的,并且父元素的大小大于子线性布局本身的wrap-content。

希望这有帮助。

答案 2 :(得分:0)

使用RelativeLayout

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="bottom">

    <TextView
        android:id="@+id/text1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="hi"
        android:textStyle="bold|italic"
        android:gravity="right"/>
    <TextView
        android:id="@+id/text2"
        android:layout_below="@id/text1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="All"
        android:gravity="right"/>

</RelativeLayout>