Android:无法阻止文本移动

时间:2011-12-19 17:34:07

标签: android

我试图将加速度计数据显示为3行,如下所示:

X:9.8 m / s2
Y:0.0 m / s2
Z:-3.2 m / s2

但无论我尝试过什么,当其中一个值高于9.9或为负时,我似乎无法阻止m / s2来回移动。

E.g。

在 X:0.0 m / s2

在 X:-5.0 m / s2

我尝试了tablelayout,但是这个列只是伸展,relativelayout,linearlayout和我能想到的每个可能的填充组合。

以下是我的XML代码示例,它位于垂直线性布局中。

<LinearLayout           
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="X:"
    android:textSize="30sp" />
    <TextView
        android:id="@+id/x_value"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
        android:paddingLeft="30sp"
        android:paddingRight="30sp"
        android:text="        "
        android:textSize="30sp"/>
<TextView
        android:id="@+id/xAccelUnits"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="           "
        android:textSize="30sp" />
</LinearLayout>

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

您需要修复文本视图的大小。它可以是dp中的宽度:layout_width =“30dp”

或者您可以为每个TextView使用权重:layout_width =“0dp”layout_weight =“1”,以便每个占用屏幕的三分之一(通过修改线性布局中的权重和weight_sum,您可以给出宽度)屏幕宽度的分数

答案 1 :(得分:0)

我自己遇到过这个问题,这就是我解决它的方法,稍加适应你的情况:

DecimalFormat df = new DecimalFormat("#00.00000"); //put this somewhere where you don't have to recreate it every time you get a new value.
String xAcc = df.format(event.values[0]);
xValueView.setText(xAcc);

(其中xValueView是要在其中显示值的TextView)