在Android中制作TextView可滚动+ Bug

时间:2011-07-21 16:31:06

标签: android

我已经阅读过这篇文章:Making TextView scrollable on Android但没有成功。

我的应用看起来像这样: enter image description here

黑色空间是TextView。它在xml中声明如下:

<TextView
android:id="@+id/consola"
android:layout_width="320px"
android:layout_height="333px"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:scrollbars = "vertical"
android:gravity="top|left" 
android:inputType="textMultiLine"
>
</TextView>

当按下按钮时,我的代码会将文本输入editText,并在textView中使用该文本写入新行。代码如下:

public class HelloworldActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    final TextView miConsola = (TextView) findViewById(R.id.consola);
    miConsola.setMovementMethod(new ScrollingMovementMethod());

    final EditText lineaComando = (EditText) findViewById(R.id.linea_comando);
    final Button botonConectar = (Button) findViewById(R.id.boton_conectar);
    final Button botonEnviar = (Button) findViewById(R.id.boton_enviar);

    botonEnviar.setEnabled(false);

    botonConectar.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
          // Intentaremos conectar por bluetooth aqui
            botonConectar.setEnabled(false);
            botonEnviar.setEnabled(true);
        }               
      });

    botonEnviar.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
          // Enviamos el comando
            CharSequence comando = lineaComando.getText();
            miConsola.append(comando+"\r\n");
        }               
      });
    miConsola.append("Esto es una prueba\r\n");
    miConsola.append("Esto es otra prueba\r\n");


}

}

但是当文本到达TextView的底部时,它仍会在EditText上写一个新行,如果继续,则不会出现滚动条。

知道我做错了什么?

2 个答案:

答案 0 :(得分:1)

将文本视图放在垂直ScrollView中。将Scroll View的高度设置为与文本视图相同的固定高度。然后将wrap_content设置为文本视图的宽度和高度。

答案 1 :(得分:1)

在xml布局中使用硬编码像素值不是最好的方法。使用相对布局并将TextView设置为EditText上方。我也将我的TextViews放在ScrollViews中(使用上面的相对布局属性来保持它们就位)。

相关问题