AS TextView自动将定位到底部,多余行自动滚到底部

先在onCreate里添加操作:

et_text1.setMovementMethod(new ScrollingMovementMethod());

xml:

 <ScrollView
            android:id="@+id/sv_show"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:fadeScrollbars="false"
            android:scrollbarAlwaysDrawVerticalTrack="true"
            android:scrollbars="vertical">

            <TextView
                android:id="@+id/et_text1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:scrollbars="vertical"
                android:height="200px"
                android:text="提示信息\n">
            </TextView>
        </ScrollView>

mainactivity:

 // 内层高度超过外层
                                                int offset = getTextViewHeight(et_text1) - et_text1.getHeight();
                                                if (offset < 0) {
                                                    System.out.println("内层高度小于外层 offset=" + offset);
                                                    offset = 0;
                                                }
                                                else
                                                    System.out.println("内层高度超过外层 offset=" + offset);
                                                //滚动offset偏移量
                                                et_text1.scrollTo(0, offset);

getTextViewHeight方法获取每次添加文字TextView实际高度

private int getTextViewHeight(TextView pTextView) {
        Layout layout = pTextView.getLayout();
        int desired = layout.getLineTop(pTextView.getLineCount());
        int padding = pTextView.getCompoundPaddingTop() + pTextView.getCompoundPaddingBottom();
        return desired + padding;
    }

控制台输出
在这里插入图片描述
模拟器app效果
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Android中,可以通过设置TextView的属性和使用一些代码来实现垂直自动动效果。 首先,我们可以使用xml布局文件或者代码动态创建一个TextView。在xml布局文件中,我们可以设置TextView的宽度和高度、文字内容等属性。 接下来,可以在代码中通过设置TextView的属性来实现垂直自动动。首先,我们可以使用setMaxLines方法来设置TextView的最大数,让它只显示一。然后,可以使用setEllipsize方法来设置TextView的省略方式为Marquee,表示文字超出一时以动的形式显示。最后,再调用setSelected方法来启动动效果。 示例代码如下: ```java TextView textView = findViewById(R.id.text_view); textView.setMaxLines(1); textView.setEllipsize(TextUtils.TruncateAt.MARQUEE); textView.setSelected(true); ``` 这样,当TextView的文字内容超过一时,就会自动动的方式显示。需要注意的是,在xml布局文件中或者代码中,需要将TextView的单显示设置为true,并且保证TextView可获取焦点才能触发动效果。 除了上述方法,还可以使用属性动画或者使用Handler来实现TextView的垂直自动动效果。使用属性动画可以设置动画效果的速度和插值器,更加灵活。使用Handler的方式可以自定义动的速度和间隔时间。 总之,通过设置TextView的属性和使用一些代码,我们可以实现Android中TextView的垂直自动动效果,提升用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值