更改文本视图时,文本视图下方按钮上的文本向下移动。救命!

时间:2011-05-18 16:31:59

标签: android android-layout

我几乎有一个Textview,当用户点击我制作的按钮的针垫时,它就像星号的显示一样。

按钮的文本居中,但是当我向Textview文本属性追加某些内容时,数字2针的布局会更改为居中于底部而不是死点。这是xml的一部分:

<!-- PIN text -->
<TableLayout>
    <TableRow android:id="@+id/btn_row1"
        android:gravity="center"
        android:layout_marginTop="6dip">
        <!-- password text-->  
        <TextView
            android:id="@+id/txt_pin"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#FFFFFF"
            android:text=""
            android:background="@drawable/txt_background"/>
    </TableRow>
</TableLayout>  
<!-- PIN ends -->
<!-- Header end -->
<!-- PIN button starts -->      
<TableLayout android:id="@+id/table_modes"
    android:layout_marginTop="6dip">
    <!-- First button rows -->  
    <TableRow android:id="@+id/btn_row1"
        android:gravity="center">
        <!-- one button-->  
        <Button android:id="@+id/btn_one"
            android:layout_column="1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="3dip"
            android:layout_marginRight="2.5dip"
            android:textColor="#FFFFFF"
            android:text="1"
            android:background="@drawable/button_layout_med" 
            android:onClick="input"/>
        <!-- two Button -->  
        <Button android:id="@+id/btn_two"
            android:layout_column="2"
            android:layout_width="100dip"
            android:layout_height="60dip"
            android:layout_marginLeft="2.5dip"
            android:layout_marginRight="2.5dip"
            android:gravity="center"
            android:textColor="#FFFFFF"
            android:text="2"
            android:background="@drawable/button_layout_med" 
            android:onClick="input"/>
        <!-- 3 button -->  
        <Button android:id="@+id/btn_three"
            android:layout_column="3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="2.5dip"
            android:layout_marginRight="3dip"
            android:textColor="#FFFFFF"
            android:text="3"
            android:background="@drawable/button_layout_med" 
            android:onClick="input"/>
    </TableRow>
    <!-- First row ends -->
 <!-- Rows continue down 3 more then a submit and back button -->

下一部分是OnClick的java代码:

public void input(View v){
            Button i = (Button) v;
    TextView tv_pin = (TextView) findViewById(R.id.txt_pin);


    while(view_pin.length() < 10){
        pin.append(i.getText().toString());
        view_pin.append('*');
        tv_pin.setText(view_pin.toString());
        break;
    }

}

其中pin和view_pin是私有静态变量。

1 个答案:

答案 0 :(得分:1)

要解决此问题,我只需将第二个按钮的高度和宽度的XML代码更改为“wrap_content”,而不是为它们提供静态值。

<!-- two Button -->  
<Button android:id="@+id/btn_two"
    android:layout_column="2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="2.5dip"
    android:layout_marginRight="2.5dip"
    android:gravity="center"
    android:textColor="#FFFFFF"
    android:text="2"
    android:background="@drawable/button_layout_med" 
    android:onClick="input"/>