如何在自定义Android对话框中排列整数输出

| 我正在使用SimpleCursorAdaptor从SQLite数据库显示整数数据。 一切都出现了,但是对齐方式都是错误的: 该对话框如下所示:
    <?xml version=\"1.0\" encoding=\"utf-8\"?>
<RelativeLayout
  xmlns:android=\"http://schemas.android.com/apk/res/android\"
  android:layout_width=\"fill_parent\"
  android:layout_height=\"fill_parent\">

   <ListView android:id=\"@+id/lvwScores\"
       android:layout_width=\"wrap_content\"
        android:layout_height=\"wrap_content\"/>
    <Button
     android:id=\"@+id/btnOK \"
     android:layout_height=\"wrap_content\"
     android:layout_width=\"wrap_content\"
     android:text=\"OK\" android:layout_below=\"@id/lvwScores\">
   </Button>
</RelativeLayout>
使用行xml文件:
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<RelativeLayout  xmlns:android=\"http://schemas.android.com/apk/res/android\"
  android:layout_width=\"fill_parent\" android:layout_height=\"fill_parent\">
<TableLayout  android:layout_width=\"fill_parent\" android:layout_height=\"wrap_content\" android:stretchColumns=\"0,1,2,3\">
<TableRow >
<TextView android:id=\"@+id/tvwPlayer1Score\" xmlns:android=\"http://schemas.android.com/apk/res/android\"
    android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\" android:gravity=\"right\"/>
<TextView android:id=\"@+id/tvwPlayer2Score\" xmlns:android=\"http://schemas.android.com/apk/res/android\"
    android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\" android:gravity=\"right\"/>
<TextView android:id=\"@+id/tvwPlayer3Score\" xmlns:android=\"http://schemas.android.com/apk/res/android\"
    android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\" android:gravity=\"right\"/>
<TextView android:id=\"@+id/tvwPlayer4Score\" xmlns:android=\"http://schemas.android.com/apk/res/android\"
    android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\" android:gravity=\"right\"/>
</TableRow>
</TableLayout>
</RelativeLayout>
    
已邀请:
TableLayout
是一个错误的选择。它固有的流动性将导致色谱柱的宽度根据其内部的含量而变化(尽管拉伸确实可以最大程度地减少其中的一部分),但是您无法控制(见下文)。同样,名称空间声明只需要在XML的根元素上,而不是每个;) 通过使用以下方法,可以大大简化行布局:
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"
  android:layout_width=\"fill_parent\"
  android:layout_height=\"wrap_content\"
  android:orientation=\"horizontal\">
  <TextView android:id=\"@+id/tvwPlayer1Score\"
    android:layout_width=\"fill_parent\"
    android:layout_height=\"wrap_content\"
    android:layout_weight=\"1\"
    android:gravity=\"right\"/>
  <TextView android:id=\"@+id/tvwPlayer2Score\"
    android:layout_width=\"fill_parent\"
    android:layout_height=\"wrap_content\"
    android:layout_weight=\"1\"
    android:gravity=\"right\"/>
  <TextView android:id=\"@+id/tvwPlayer3Score\"
    android:layout_width=\"fill_parent\"
    android:layout_height=\"wrap_content\"
    android:layout_weight=\"1\"
    android:gravity=\"right\"/>
  <TextView android:id=\"@+id/tvwPlayer4Score\"
    android:layout_width=\"fill_parent\"
    android:layout_height=\"wrap_content\"
    android:layout_weight=\"1\"
    android:gravity=\"right\"/>
</LinearLayout>
每个元素上的
layout_width=\"fill_parent\"
layout_weight=\"1\"
组合使系统将所有四个元素布置成等间距(因为它们的权重总和相同)以填充行。只要有可能,我几乎总是使用嵌套的ѭ6代替ѭ2((实际上,ѭ2就是全部))。 您发布的行XML中的另一件事:像
RelativeLayout
标记中那样,用
layout_height=fill_parent
设置列表项布局的根元素不是一个好主意。根据绘制此布局的位置,布局管理器实际上可能会听您的声音,并且一行可能最终占用整个窗口! 关于TABLELAY参数的注意事项: 如果您坚持使用
TableLayout
,请知道可以(并且应该)从
TableLayout
TableRow
的每个孩子中省略所有
layout_width
layout_height
属性。这两个小部件会忽略您所说的内容,并将其子级的值分别设置为MATCH_PARENT和WRAP_CONTENT,因此,如果您认为它们应该生效,则将它们添加到代码中只会使您感到困惑。 希望对您有所帮助!     
您应指定
android:gravity
属性:
<TextView android:gravity=\"right\" />
关于此的更多信息:Android TextView 更新: 我已经修改了row.xml布局。 将“ 18”的宽度更改为
fill_parent
(他们被拉长了 无论如何,所以它不会造成任何伤害), 和 新增了一些属性
TableRow
标签 所以看起来像:
[...]
<TableRow android:orientation=\"horizontal\" 
    android:layout_width=\"fill_parent\" android:layout_height=\"match_parent\">
    <TextView android:id=\"@+id/tvwPlayer1Score\"
        xmlns:android=\"http://schemas.android.com/apk/res/android\"
        android:layout_width=\"fill_parent\" android:layout_height=\"wrap_content\"
        android:gravity=\"right\" />
    <TextView android:id=\"@+id/tvwPlayer2Score\"
        xmlns:android=\"http://schemas.android.com/apk/res/android\"
        android:layout_width=\"fill_parent\" android:layout_height=\"wrap_content\"
        android:gravity=\"right\" />
    <TextView android:id=\"@+id/tvwPlayer3Score\"
        xmlns:android=\"http://schemas.android.com/apk/res/android\"
        android:layout_width=\"fill_parent\" android:layout_height=\"wrap_content\"
        android:gravity=\"right\" />
    <TextView android:id=\"@+id/tvwPlayer4Score\"
        xmlns:android=\"http://schemas.android.com/apk/res/android\"
        android:layout_width=\"fill_parent\" android:layout_height=\"wrap_content\"
        android:gravity=\"right\" android:layout_margin=\"2dp\" />
</TableRow>
[...]
输出现在看起来: 请让我知道是否有帮助(仍然很尴尬...)     

要回复问题请先登录注册