Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 更改textview时,textview下方按钮上的文本向下移动。救命啊!_Android_Android Layout - Fatal编程技术网

Android 更改textview时,textview下方按钮上的文本向下移动。救命啊!

Android 更改textview时,textview下方按钮上的文本向下移动。救命啊!,android,android-layout,Android,Android Layout,几乎我有一个文本视图,当用户点击我制作的按钮时,它会显示星号 按钮的文本居中,但当我将某些内容附加到Textview文本属性时,2号管脚的布局似乎会更改为底部的中心,而不是死点。这是xml的一部分: <!-- PIN text --> <TableLayout> <TableRow android:id="@+id/btn_row1" android:gravity="center" android:layout_margin

几乎我有一个文本视图,当用户点击我制作的按钮时,它会显示星号

按钮的文本居中,但当我将某些内容附加到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;
    }

}
公共无效输入(视图v){
按钮i=(按钮)v;
TextView tv_pin=(TextView)findViewById(R.id.txt_pin);
while(视图长度()<10){
append(i.getText().toString());
视图_pin.append('*');
tv_pin.setText(view_pin.toString());
打破
}
}

其中pin和view\u pin是私有静态变量。

要解决这个问题,我只需将第二个按钮的高度和宽度的XML代码更改为“wrap\u 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"/>

为了解决这个问题,我只需将第二个按钮的高度和宽度的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"/>


这是每次都会发生,还是仅当追加导致换行时才会发生?它只在第一次追加星号时发生,但在整个激活过程中它一直保持在下方。我注意到,出于某种原因,唯一设置了重力场的按钮是btn_2。我想这可能就是它,所以我把它拿走了。但这并没有解决问题。我还注意到我将行ID保留为原来的状态,因此进行了编辑,仍然没有修复。解决了我的问题。android:layout\u width=“100dip”android:layout\u height=“60dip”是为按钮二设置的,我将所有其他按钮放在“包装内容”中。我不知道为什么我明确地把按钮二的高度和宽度。。。将高度和宽度更改为“包裹内容”,现在效果非常好。对您有好处。如果你在下面做出自己的“答案”并接受它,那就太好了。它是每次都会发生,还是只在追加后会换行?它只会在第一次追加星号时发生,但在整个激活过程中它一直在下面。我注意到,出于某种原因,唯一设置了重力场的按钮是btn_2。我想这可能就是它,所以我把它拿走了。但这并没有解决问题。我还注意到我将行ID保留为原来的状态,因此进行了编辑,仍然没有修复。解决了我的问题。android:layout\u width=“100dip”android:layout\u height=“60dip”是为按钮二设置的,我将所有其他按钮放在“包装内容”中。我不知道为什么我明确地把按钮二的高度和宽度。。。将高度和宽度更改为“包裹内容”,现在效果非常好。对您有好处。如果你在下面给出自己的“答案”并接受它,那就太好了。