android XML布局无法按预期使用tablelayout和scrollview

时间:2011-04-22 15:32:57

标签: android xml scrollview tablelayout

修改: TableLayout无法正常工作吗?我看到大多数人说使用相对布局,并跳过tableview?

enter image description here

在数据1和数据2之后的空间我试图摆脱。如果我在没有TableLayout的情况下放置相同的XML代码,那么它看起来没问题。我该怎么改变?

带有“100”的第3行我想在右侧显示2个输入文本视图。我已经尝试了所有我能想到的东西,但它不会出现在右边。我删除了第二个textview以查看是否有帮助,但没有太大的区别。

谁能告诉我我做错了什么?谢谢!

这是XML:

<?xml version="1.0" encoding="utf-8"?>

<ScrollView android:layout_width="fill_parent"
    android:layout_height="wrap_content">


    <TableLayout android:layout_width="fill_parent"
        android:stretchColumns="*" android:layout_height="fill_parent"
        android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android"
        android:padding="6px">

        <TableRow style="@style/FormRows" android:layout_marginTop="15sp">
            <Button android:layout_width="fill_parent"
                android:layout_height="wrap_content" android:layout_marginLeft="5px"
                android:layout_span="3" android:layout_weight="1" android:text="Save"
                android:id="@+id/dgSave" />
        </TableRow>



        <TableRow style="@style/FormRows">

            <TextView android:layout_width="70sp"
                android:layout_height="wrap_content" android:textSize="16sp"
                android:layout_weight="1" android:text="Data 1" />

            <Spinner android:id="@+id/dgData0" android:layout_weight="2"
                android:layout_width="wrap_content" android:layout_height="wrap_content" />

        </TableRow>



        <TableRow>

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

        <EditText android:text="100" android:selectAllOnFocus="true"
                    android:imeOptions="actionNext" android:numeric="integer"
                    android:width="100sp" android:id="@+id/dgWarn0" android:gravity="right"
                    android:layout_height="wrap_content" android:layout_weight="1"
                    android:layout_gravity="right" android:layout_span="2" />


                <EditText android:text="100" android:selectAllOnFocus="true"
                    android:imeOptions="actionNext" android:numeric="integer"
                    android:width="100sp" android:id="@+id/dgWarn1" android:gravity="right"
                    android:layout_height="wrap_content" android:layout_weight="1"
                    android:layout_gravity="right" android:layout_span="2" />

            </LinearLayout>

        </TableRow>

        <TableRow style="@style/FormRows">

            <TextView android:layout_width="70sp"
                android:layout_height="wrap_content" android:textSize="16sp"
                android:layout_weight="1" android:text="Data 2" />

            <Spinner android:id="@+id/dgData1" android:layout_weight="2"
                android:layout_width="wrap_content" android:layout_height="wrap_content" />

        </TableRow>


    </TableLayout>
</ScrollView>

谢谢!任何帮助!!! 标记

2 个答案:

答案 0 :(得分:2)

这是RelativeLayout的样子。我做得很快......它缺少其他一些利润等等......但这是一个起点。

<?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" >
    <Button android:id="@+id/save"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_margin="20dp"
        android:text="Save" />
    <Spinner android:id="@+id/spinner1"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignRight="@id/save" />
    <TextView
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_toLeftOf="@id/spinner1"
        android:text="Data 1" />
    <EditText android:id="@+id/editbox"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignRight="@id/save"
        android:layout_below="@id/spinner1" />
    <Spinner android:id="@+id/spinner2"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignRight="@id/save"
        android:layout_below="@id/editbox" />
    <TextView
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_toLeftOf="@id/spinner2"
        android:text="Data 2" />
</RelativeLayout>

答案 1 :(得分:0)

嘿 我快速浏览了一下,也许TableLayout现在是这个特定活动的最佳选择。 你考虑过使用RelativeLayout吗?在那里,您可以通过将小部件放置在其他小部件附近来定义小部件的位置(例如,某些按钮位于文本视图下)。

这只是一个建议,也许不仅仅是这个具体问题,我还没有完全了解。

您可以在这里阅读有关RealtiveLayout的信息:

http://developer.android.com/reference/android/widget/RelativeLayout.html

http://developer.android.com/resources/tutorials/views/hello-relativelayout.html

编辑:Maximus,伟大的思想相似,我们的评论之间30秒:)