【问题标题】:How to place textview on right and left of layout?如何将textview放置在布局的右侧和左侧?
【发布时间】:2010-08-27 04:44:34
【问题描述】:

我想在布局的右侧和布局的左侧放置一个 textview,但它们总是相互堆叠:

<LinearLayout
        android:layout_width="0dip"
        android:layout_weight="1"
        android:layout_height="fill_parent" android:orientation="horizontal">
        <TextView
            android:id="@+id/lefttext"
            android:layout_width="fill_parent"
            android:layout_height="0dip"
            android:layout_weight="1"
            android:text="Symbol"/>
       <TextView
            android:id="@+id/righttext"
            android:layout_width="fill_parent"
            android:layout_height="0dip"
            android:layout_weight="1"
            android:text="Price"/>
    </LinearLayout>

【问题讨论】:

    标签: android layout textview android-linearlayout


    【解决方案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="fill_parent"
        android:orientation="horizontal"
        >
        <TextView
            android:id="@+id/left_text"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:text="Symbol"
            />
        <TextView
            android:id="@+id/right_text"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:text="Price"
            />
    </LinearLayout>
    

    为什么要为这些高度指定 0dip?

    对于侧面的符号:

    <?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="fill_parent"
        android:orientation="horizontal"
        >
        <TextView
            android:id="@+id/left_text"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:padding="5dip"
            android:gravity="left"
            android:text="Symbol"
            />
        <TextView
            android:id="@+id/right_text"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:padding="5dip"
            android:gravity="right"
            android:text="Price"
            />
    </LinearLayout>
    

    使用RelativeLayout 完成:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >   
        <TextView
            android:id="@+id/left_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="5dip"
            android:layout_alignParentLeft="true"
            android:text="Code"
            />
        <TextView
            android:id="@+id/right_text"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:padding="5dip"
            android:layout_toRightOf="@+id/left_text"
            android:gravity="right"     
            android:text="Company Name"
            />  
    </RelativeLayout>
    

    【讨论】:

    • 有什么方法可以让符号在最左边,价格在最右边?
    • 是的,只需将重力设置调整为您想要的任何值。我在上面添加了一个示例。 (我还添加了少量的填充物,这样它们就不会压在侧面)
    • right_text 似乎没有向右倾斜,看看我的截图:cl.ly/786ff7d72c99537d190b
    • 你在 ListView 中使用这个吗?
    • 是的,我在 ListView 中使用它
    【解决方案2】:

    像这样在RelaytiveLayout 内部的视图中使用android:layout_alignParentLeft="true"android:layout_alignParentRight="true"

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        >
        <TextView
            android:id="@+id/left_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:gravity="left|center_vertical"
            android:text="Symbol"
            />
        <TextView
            android:id="@+id/right_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:gravity="right|center_vertical"
            android:text="Price"
            />
    </RelativeLayout>
    

    或者,您可以使用 TableLayoutstretchColumn 将第二列拉伸到父级的大小。

    【讨论】:

      【解决方案3】:

      使用 LinearLayout,只需在它们之间放置一个空的 TextView:

      <LinearLayout
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:orientation="horizontal">
          <TextView
              android:id="@+id/lefttext"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:text="Symbol"/>
         <TextView
              android:layout_width="0dp"
              android:layout_height="wrap_content"
              android:layout_weight="1"
              />
         <TextView
              android:id="@+id/righttext"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:text="Price"/>
      </LinearLayout>
      

      【讨论】:

      • 除了,最好不要放TextView而是放View:
      猜你喜欢
      • 2018-08-04
      • 1970-01-01
      • 2010-12-17
      • 1970-01-01
      • 1970-01-01
      • 2013-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多