2014-02-19 32 views
1

我想在屏幕宽度上划出3个TextViews,第一个TextView触摸左边距,第三个TextView触摸右边距。用左右对齐方式在屏幕之间均匀地分隔TextViews

目前我能做到以下几点:

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

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

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

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

我要实现:

| text [space] text [space] text |

但我似乎无法得到它。这是我的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文本不好。这只是暂时的。

+0

btw: 8sp对于文本视图来说太小,并且在大屏幕上很难阅读。 –

回答

3

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

更新:要居中超过三个,您需要更改布局...更新下面的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> 
+0

感谢您的帮助。如果我想通过超过3个TextView来实现右/左对齐的间隔,那么该怎么办?说7 – JayHay23

+0

嗯,这是有点难,因为你迫使左/右最左边/右分别对齐。但是如果你在这两者之间用'0dp width','weight 1'和'center_horizo​​ntal'引力添加更多的TextView,间距将是相同的(对于每个视图)。 –

+0

真正的“理由”将要求您测量容器,然后独立测量每个视图,并进行一些数学运算以将它们放置在屏幕中。这更加棘手。 –

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> 
0

你错过了2次3 TextView的重力..try这样

<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> 
0

也许这不正是你所寻找的,但如果你想以编程方式和动态添加项目,这里是示例代码 github