通过左右对齐,在屏幕上均匀地显示TextView

时间:2014-02-19 02:03:18

标签: android xml android-layout android-linearlayout

我想在屏幕的宽度上划出3个TextView,第一个TextView触及左边距,第三个TextView触及右边距。

目前我能够实现以下目标:

|文本[空格]文本[空格]文本[空间] |

| [空格]文本[空格]文本[空格]文本|

| [空间/ 2]文本[空格]文本[空格]文本[空间/ 2] |

分别在水平ListView中设置左,右和中心重力。

我想实现:

|文本[空格]文本[空格]文本|

但我似乎无法得到它。这是我的XML:

<LinearLayout
    android:id="@+id/graph_xaxis_labels"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/linegraph_fragment"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:orientation="horizontal">

    <TextView
    android:id="@+id/textview_xaxis_0"
    android:layout_width="0px"
        android:layout_height="wrap_content" 
        android:layout_weight="1"
        android:textSize="8sp"
        android:text="02/12"
        />
    <TextView
        android:id="@+id/textview_xaxis_1"
        android:layout_width="0px"
        android:layout_height="wrap_content" 
        android:layout_weight="1"

        android:textSize="8sp"
        android:text="02/13"
        />
    <TextView
        android:id="@+id/textview_xaxis_2"
        android:layout_width="0px"
        android:layout_height="wrap_content" 
        android:layout_weight="1"

        android:textSize="8sp"
        android:text="02/14"
        />


</LinearLayout>

非常感谢任何帮助。

PS:我知道硬编码TextView文本很糟糕。那只是暂时的。

4 个答案:

答案 0 :(得分:4)

你快到了。你错过了重力。

更新:要居中超过三个,您需要更改以下6个标签更新的布局...(提示由Haresh回答)它有一些缺点但应该做的伎俩

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/graph_xaxis_labels"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:gravity="center"
              android:orientation="horizontal">
  <TextView
      android:id="@+id/textview_xaxis_0"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:textSize="8sp"
      android:text="02/12"/>
  <View
      android:layout_width="0dp"
      android:layout_height="1dp"
      android:layout_weight="1"/>
  <TextView
      android:id="@+id/textview_xaxis_1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:textSize="8sp"
      android:text="02/13"/>
  <View
      android:layout_width="0dp"
      android:layout_height="1dp"
      android:layout_weight="1"/>
  <TextView
      android:id="@+id/textview_xaxis_2"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:textSize="8sp"
      android:text="02/14"/>
  <View
      android:layout_width="0dp"
      android:layout_height="1dp"
      android:layout_weight="1"/>
  <TextView
      android:id="@+id/textview_xaxis_3"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:textSize="8sp"
      android:text="02/15"/>
  <View
      android:layout_width="0dp"
      android:layout_height="1dp"
      android:layout_weight="1"/>
  <TextView
      android:id="@+id/textview_xaxis_4"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:textSize="8sp"
      android:text="02/16"/>
  <View
      android:layout_width="0dp"
      android:layout_height="1dp"
      android:layout_weight="1"/>
  <TextView
      android:id="@+id/textview_xaxis_5"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:textSize="8sp"
      android:text="02/17"/>
</LinearLayout>

答案 1 :(得分:0)

// try this way
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/graph_xaxis_labels"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/linegraph_fragment"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:gravity="center"
    android:orientation="horizontal">
    <TextView
        android:id="@+id/textview_xaxis_0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="8sp"
        android:text="02/12"/>
    <View
        android:layout_width="0dp"
        android:layout_height="1dp"
        android:layout_weight="1"/>
    <TextView
        android:id="@+id/textview_xaxis_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="8sp"
        android:text="02/13"/>
    <View
        android:layout_width="0dp"
        android:layout_height="1dp"
        android:layout_weight="1"/>
    <TextView
        android:id="@+id/textview_xaxis_2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="8sp"
        android:text="02/14"/>
</LinearLayout>

答案 2 :(得分:0)

你错过第二次第三次文本视图的引力..这样

<TextView
android:id="@+id/textview_xaxis_0"
android:layout_width="0px"
    android:layout_height="wrap_content" 
    android:layout_weight="1"
    android:textSize="8sp"
    android:text="02/12"
    />
<TextView
    android:id="@+id/textview_xaxis_1"
    android:layout_width="0px"
    android:layout_height="wrap_content" 
    android:layout_weight="1"
   android:gravity="center"
    android:textSize="8sp"
    android:text="02/13"
    />
<TextView
    android:id="@+id/textview_xaxis_2"
    android:layout_width="0px"
    android:layout_height="wrap_content" 
    android:layout_weight="1"
    android:gravity="right"
    android:textSize="8sp"
    android:text="02/14"
    />


  </LinearLayout>

答案 3 :(得分:0)

也许这不是您想要的,但如果您想以编程方式动态添加项目,请参阅示例代码 github