按钮文本移位问题

时间:2010-06-08 05:46:37

标签: android layout

我有这个奇怪的问题。我有这些按钮,按钮的文本在某些操作时向下移动。例如,我有一个带有选择的微调器,其中一个选项使一些按钮不可见而其他按钮可见。当我选择这些时,所有可见的按钮都会向下移动文本。没有其他任何东西被移动,只是按钮上的文字。我已经尝试过这个1.5并且它工作正常,没有文本转移,但我有2.1的问题,我真的无法搞清楚。任何想法或帮助都会很棒。感谢。

这是文件的xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">


<TableLayout android:id="@+id/testpracHeader" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true">
    <!-- android:background="#ff0000"-->

    <TableRow>
        <Spinner android:id="@+id/testprac_menu" 
            android:layout_width="200px" 
            android:layout_height="wrap_content"></Spinner>
        <View android:id="@+id/header_space_buffer" 
            android:layout_width="40px" 
            android:layout_height="30px"
            android:gravity="center"></View>
        <Button android:text="New" 
            android:id="@+id/newInterval" 
            android:layout_width="80px" 
            android:layout_height="wrap_content"></Button>
    </TableRow>
</TableLayout>

<TableLayout android:id="@+id/bottomStruct" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true">
    <TableRow>
        <Button android:layout_width="80px" 
            android:text="Replay" 
            android:id="@+id/replay" 
            android:layout_height="wrap_content"></Button>
        <Button android:id="@+id/playInterval" 
            android:text="Play"
            android:layout_width="160px" 
            android:layout_height="wrap_content"></Button>
        <Button android:text="Submit" 
            android:id="@+id/submit" 
            android:layout_width="80px" 
            android:layout_height="wrap_content"></Button>
    </TableRow>
</TableLayout>

</RelativeLayout>

当我使用testprac微调器时,重放,新建和提交按钮变为不可见,播放按钮变为可见(这就是我想要的)。这似乎是问题似乎开始的时候。播放按钮的文字完全消失(可能转移到低视图),当我返回到另一个按钮时,我看到的问题如下所示。左边是使用微调器之前的问题,右边是问题。我不知道它是否只是导致这种情况的微调器。

The GUI before I invoke the spinner The GUI after I invoke the spinner

2 个答案:

答案 0 :(得分:0)

文本在内移动按钮?可能是一个错误。你在Android 2.2上试过吗?

答案 1 :(得分:0)

我认为在Spinner内使用RelativeLayout时存在错误。如果您尝试将根布局更改为LinearLayout,则会看到它按预期工作。

原始布局的更改:

  1. 根布局更改为LinearLayout。
  2. TableLayout之间添加一个虚拟视图,将它们分隔开来 底部。
  3. 注意:我在尝试解决this时发现了您的问题。似乎相似。

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    
    
    <TableLayout android:id="@+id/testpracHeader" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content">
        <!-- android:background="#ff0000"-->
    
        <TableRow>
            <Spinner android:id="@+id/testprac_menu" 
                android:layout_width="200px" 
                android:layout_height="wrap_content"></Spinner>
            <View android:id="@+id/header_space_buffer" 
                android:layout_width="40px" 
                android:layout_height="30px"
                android:gravity="center"></View>
            <Button android:text="New" 
                android:id="@+id/newInterval" 
                android:layout_width="80px" 
                android:layout_height="wrap_content"></Button>
        </TableRow>
    </TableLayout>
    
    <View  
            android:layout_width="fill_parent" 
            android:layout_height="0dp"
            android:layout_weight="1"/>
    
    <TableLayout android:id="@+id/bottomStruct" 
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content">
        <TableRow>
            <Button android:layout_width="80px" 
                android:text="Replay" 
                android:id="@+id/replay" 
                android:layout_height="wrap_content"></Button>
            <Button android:id="@+id/playInterval" 
                android:text="Play"
                android:layout_width="160px" 
                android:layout_height="wrap_content"></Button>
            <Button android:text="Submit" 
                android:id="@+id/submit" 
                android:layout_width="80px" 
                android:layout_height="wrap_content"></Button>
        </TableRow>
    </TableLayout>
    
    </LinearLayout>