我正在使用TableLayout格式化一个3x2表,该表以每个单元格中的一个属性名称开头,另一个空TextView将在运行时编辑为包含值。我希望第一列从屏幕的左边缘开始,下一列从屏幕中间开始。空TextViews的文本设置为" 这里有~10个空格",但空白区域不会显示在图形编辑器中。
如何创建包含空格的TextView?
现在是我的xml文件:
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="166dp" >
<TableRow
android:id="@+id/tableRow1"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/datetext"
android:text="@string/date" ></TextView>
<TextView
android:id="@+id/date"
android:text="@string/empty" ></TextView>
<TextView
android:id="@+id/heartratetext"
android:text="@string/heart_rate" ></TextView>
<TextView
android:id="@+id/heart_rate"
android:text="@string/empty" ></TextView>
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:text="@string/empty" ></TextView>
</TableRow>
<TableRow
android:id="@+id/tableRow3"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/timetext"
android:text="@string/time" ></TextView>
<TextView
android:id="@+id/time"
android:text="@string/empty" ></TextView>
<TextView
android:id="@+id/SDNNtext"
android:text="@string/SDNN" ></TextView>
<TextView
android:id="@+id/SDNN"
android:text="@string/empty" ></TextView>
</TableRow>
<TableRow
android:id="@+id/tableRow4"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:text="@string/empty" ></TextView>
</TableRow>
<TableRow
android:id="@+id/tableRow5"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/durationtext"
android:text="@string/duration" ></TextView>
<TextView
android:id="@+id/duration"
android:text="@string/empty" ></TextView>
<TextView
android:id="@+id/SDANNtext"
android:text="@string/SDANN" ></TextView>
<TextView
android:id="@+id/SDANN"
android:text="@string/empty" ></TextView>
</TableRow>
<TableRow
android:id="@+id/tableRow6"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:text="@string/empty" ></TextView>
</TableRow>
</TableLayout>
答案 0 :(得分:0)
我认为你的推理方式不正确。您应该专注于为空TextView提供适当的宽度,并使用给定数量的空间来填充它不是正确的方法。如果你想在TableRow中给出每个TextView,给定的宽度将是常量,尝试使用LinearLayout和layout_weight属性。例如,如果每个TextView应占用行宽度的1/4而不是:
<TableRow
android:id="@+id/tableRow1"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.25"
android:id="@+id/datetext"
android:text="@string/date" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.25"
android:id="@+id/date"
android:text="@string/empty" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.25"
android:id="@+id/heartratetext"
android:text="@string/heart_rate" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.25"
android:id="@+id/heart_rate"
android:text="@string/empty" />
</LinearLayout>
</TableRow>
编辑:你还需要设置android:stretchColumns =&#34; *&#34; TableLayout中的属性使该解决方案正常工作。