TextView追加文本并向下滚动
xml上放置一个textview和一个按钮.按钮点击一次,换行并追加一行信息.
- activity_main.xml如下
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<TextView
android:id="@+id/logView"
android:layout_width="match_parent"
android:layout_height="200dip"
android:fadeScrollbars="false"
android:scrollbars="vertical"
android:textColor="#ffffff"
android:text=""
android:background="#000000"
android:textAppearance="?android:attr/textAppearanceMedium" />
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/logView"
android:layout_below="@+id/logView"
android:layout_marginLeft="14dp"
android:layout_marginTop="17dp"
android:text="Button" />
</RelativeLayout>
- MainActivity.java如下
public class MainActivity extends Activity implements OnClickListener{
private TextView tv;
private Button btn;
private int offset;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.logView);
tv.setMovementMethod(ScrollingMovementMethod.getInstance());
btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
tv.append("大王叫我来巡山\n");
offset=tv.getLineCount()*tv.getLineHeight();
if(offset>tv.getHeight()){
tv.scrollTo(0,offset-tv.getHeight());
}
}
}