我已经阅读过这篇文章:Making TextView scrollable on Android但没有成功。
我的应用看起来像这样:
黑色空间是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上写一个新行,如果继续,则不会出现滚动条。
知道我做错了什么?
答案 0 :(得分:1)
将文本视图放在垂直ScrollView中。将Scroll View的高度设置为与文本视图相同的固定高度。然后将wrap_content设置为文本视图的宽度和高度。
答案 1 :(得分:1)
在xml布局中使用硬编码像素值不是最好的方法。使用相对布局并将TextView设置为EditText上方。我也将我的TextViews放在ScrollViews中(使用上面的相对布局属性来保持它们就位)。