1

我正在关注一本名为“Learning Android App Development”的书(发布于 2013 年 6 月 5 日,因此所有示例都是最新的)。

我正在尝试将相对文本与一侧(垂直方向)的 8 个 TextView(标题为 textView1 - 8)和每个右侧的 8 个(标题为 dataView1-8)对齐。我想为最右边的 TextViews 列留出 36dp 的左边距。我希望每个数据视图都从 dataView1 开始对齐。

该代码在图形布局选项卡中运行良好,在模拟器中运行良好,但在我的 android 设备上运行良好(Galaxy Note 2 - API 16)。

您能否帮助我在我的设备上进行校准或解释为什么甚至存在差异?谢谢你。

这是代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/textView1"
        android:layout_marginLeft="5dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/planet_name_label" />
    <TextView
        android:id="@+id/dataView1"
        android:layout_toRightOf="@+id/textView1"
        android:layout_marginLeft="36dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/planet_name_label"/>
    <TextView
        android:id="@+id/textView2"
        android:layout_marginLeft="5dp"
        android:layout_below="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/planet_mass_label" />

    <TextView
        android:id="@+id/dataView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignStart="@+id/dataView1"
        android:layout_below="@+id/dataView1"
        android:layout_marginStart="@+id/dataView1"
        android:layout_toRightOf="@+id/textView2"
        android:text="@string/planet_mass_label" />

    <TextView
        android:id="@+id/textView3"
        android:layout_marginLeft="5dp"
        android:layout_below="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/planet_gravity_label" />
    <TextView
        android:id="@+id/dataView3"
        android:layout_toRightOf="@+id/textView3"
        android:layout_alignStart="@+id/dataView1"
        android:layout_below="@+id/dataView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/planet_gravity_label"/>
    <TextView
        android:id="@+id/textView4"
        android:layout_marginLeft="5dp"
        android:layout_below="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/planet_colonies_label" />
    <TextView
        android:id="@+id/dataView4"
        android:layout_toRightOf="@+id/textView4"
        android:layout_alignStart="@+id/dataView1"
        android:layout_below="@+id/dataView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/planet_colonies_label"/>
    <TextView
        android:id="@+id/textView5"
        android:layout_marginLeft="5dp"
        android:layout_below="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/planet_population_label" />
    <TextView
        android:id="@+id/dataView5"
        android:layout_toRightOf="@+id/textView5"
        android:layout_alignStart="@+id/dataView1"
        android:layout_below="@+id/dataView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/planet_population_label"/>
    <TextView
        android:id="@+id/textView6"
        android:layout_marginLeft="5dp"
        android:layout_below="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/planet_military_label" />
    <TextView
        android:id="@+id/dataView6"
        android:layout_toRightOf="@+id/textView6"
        android:layout_alignStart="@+id/dataView1"
        android:layout_below="@+id/dataView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/planet_military_label"/>
    <TextView
        android:id="@+id/textView7"
        android:layout_marginLeft="5dp"
        android:layout_below="@+id/textView6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/planet_bases_label" />
    <TextView
        android:id="@+id/dataView7"
        android:layout_toRightOf="@+id/textView7"
        android:layout_alignStart="@+id/dataView1"
        android:layout_below="@+id/dataView6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/planet_bases_label"/>
    <TextView
        android:id="@+id/textView8"
        android:layout_marginLeft="5dp"
        android:layout_below="@+id/textView7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/planet_forcefield_label" />

    <TextView
        android:id="@+id/dataView8"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignStart="@+id/dataView1"
        android:layout_below="@+id/dataView7"
        android:layout_toRightOf="@+id/textView8"
        android:text="@string/planet_forcefield_label" />

</RelativeLayout>
4

2 回答 2

4

Android 4.2(API 级别 17)支持您的问题layout_alignStart,但 Galaxy Note II 是 4.1.2(API 级别 16)。

如果您访问http://developer.android.com/reference/android/R.attr.html#layout_alignStart并将 API 级别(在页面左上角)更改为 16 或更低,您将看到layout_alignStartentry变灰。

于 2013-08-16T05:55:25.490 回答
2

将 layout_alignStart 替换为 layout_alignLeft。它从 API 级别 1 得到支持并且做同样的事情。

于 2013-09-12T17:51:39.570 回答