<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.android09.MainActivity"
tools:ignore="MergeRootFrame" >
<Button
android:id="@+id/bt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="点击我" />
<TextView
android:id="@+id/tv"
android:text="哈哈哈哈哈哈我是哈哈哈哈布局文件中放置一个TextView,给它添加scrollbars和fadeScrollbars两个属性"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fadeScrollbars="false"
android:scrollbars="vertical" />
</LinearLayout>
2、主要代码 :
package com.android09;
import android.app.Activity;
import android.os.Bundle;
import android.text.method.ScrollingMovementMethod;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
Button button ;
TextView textView ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById( R.id.bt ) ;
button.setOnClickListener( new OnClickListener() {
@Override
public void onClick(View v) {
String string = "在Ubuntu中有如下几个文件可以设置环境变量/etc/profile:在登录时,"
+ "操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,"
+ "该文件被执行./etc/environment:在登录时操作系统使用的第二个文件,"
+ "系统在读取你自己的profile前,设置... " ;
refreshLogView( string );
textView = (TextView) findViewById( R.id.tv ) ;
textView.setMovementMethod(ScrollingMovementMethod.getInstance());
void refreshLogView(String msg){
textView.append(msg);
int offset=textView.getLineCount()*textView.getLineHeight();
if(offset>textView.getHeight()){
textView.scrollTo(0,offset-textView.getHeight());
3、运行效果:
在给 TextView 添加文字时,textview 会自动滚动到最后一条。
1、主布局代码: "http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" androi
android:scrollbars="vertical" //设置scrollbars属性为vertical
android:scrollbarStyle="insideOverlay" //scroll样式android:scrollbarFadeDuration="2000" //scrollbar从出现到消失的时间
1)xml中设置:
mPingResult=findViewById( R.id.pingResult );
mPingResult.setMovementMethod( new ScrollingMovementMethod() );
使用marquee模式时还需要设置以下几点才能起作用:
1.android:singleLine=“true”
2.控件需要获取焦点,一般使用.setSelected(true)方法,这样可以动态的设置是否滚动。
猜测是控件获取焦点后才能滚动
最后可以设置滚动次数,这里是无限滚
文章目录1. 问题提出2.无法精准定位的产生原因
1. 问题提出
在使用
TextView垂直
滚动添加内容,并
自动定位到
最后一行时,往往会出现
TextView没有办法精准定位的情况,并且随着内容的增加,定位根本就不对。经过多方查找资料,终于解决现将方法记录如下
2.无法精准定位的产生原因
在测试中,我们发现
TextView getLineCount()*getLineHeight() != getHeight()
1、在布局文件中放置一个TextView,给它添加scrollbars和fadeScrollbars两个属性。
如下设置:滚动条为垂直滚动条,并且一直可见(当TextView中的文字行数超过页面能显示的范围之后)。
android:scrollbars="vertical" android:fadeScrollbars="false"
2、在Activity中的onCr...
java: 用handler循环调用这个方法即可
public static void scroll2Bottom(final ScrollView scroll, final View inner) {
Handler handler = new Handler();
handler.post(new Runnable() {
@Override
android:id="@+id/tv_scroll"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="这是一段需要滚动的文本"/>
</ScrollView>
Java代码:
TextView tvScroll = findViewById(R.id.tv_scroll);
tvScroll.setMovementMethod(new ScrollingMovementMethod());
这样就可以实现TextView的滚动效果了。