0

我想显示分配给两个不同标题的三个不同值,换句话说,第一个标题有一个值,第二个标题有两个值

我的方法是拆分“标题线性布局”40/60 和“值线性布局”40/30/30。为了不显示从边框开始的文本,我在任何地方都放了一个android:layout_marginLeft="15dp"in,所以最后它应该保持比例。

在我的 XML 中,我声明了以下内容:

<LinearLayout 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">
    <TextView 
        android:layout_weight="4"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginLeft="15dp"
        android:text="@string/txt_price_chf"
        />
    <TextView 
        android:layout_weight="6"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginLeft="15dp"
        android:text="@string/txt_price_offshore_chf"
        />
</LinearLayout>

<LinearLayout 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">
    <TextView android:id="@+id/tv_price_ch"
        android:layout_weight="4"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginLeft="15dp"
        android:text="Value1"
        />

    <TextView android:id="@+id/tv_price_off_chf"
        android:layout_weight="3"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginLeft="15dp"
        android:text="Value2"
        />

    <TextView android:id="@+id/tv_price_off_eur"
        android:layout_weight="3"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginLeft="15dp"
        android:text="Value3"
        />
</LinearLayout>

结果如下输出:

在此处输入图像描述

为什么“离岸价格:”-TextView 和“Value2”-TextView 不对齐?请注意,“离岸价格”保存在我的 strings.xml 中,没有空格之类的错误。首先我想,这是由 引起的android:layout_marginLeft="15dp",但是

  • 我如何理解“dp”是特定分辨率的相对值(因此拆分不android:layout_weigth应该影响这一点)和

  • 如果我删除边距,它们仍然不符合要求。

有人有想法吗?我忽略了一些明显的东西吗?

4

3 回答 3

1
<TextView 
        android:layout_weight="4"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="-10dp"
        android:text="@string/txt_price_chf"
        />

这将为您工作...

于 2012-06-14T11:33:15.573 回答
0

不过,这并不是你应该做的事情LinearLayout

我建议使用 a RelativeLayout,你可以说这两个应该对齐。

在这种特殊情况下,无需深入研究细节,它可以是 marginRight、padding 等,也可以只是非等宽字体的副作用。

于 2012-06-14T11:12:27.897 回答
0

或者另一种选择是:

        <LinearLayout
       android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dp"
    android:layout_weight=".60"
    android:orientation="vertical" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="txt_price_chf" />

    <TextView
        android:id="@+id/tv_price_ch"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Value1" />
    </LinearLayout>


      <LinearLayout
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:layout_marginLeft="10dp"
          android:layout_weight=".40"
          android:orientation="vertical" >

        <TextView
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="txt_price_offshore_chf" />

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/tv_price_off_chf"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Value2" />

        <TextView
            android:id="@+id/tv_price_off_eur"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Value3" />
    </LinearLayout>
</LinearLayout>
于 2012-06-14T11:39:46.760 回答