失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 简易实现 TextView单行文本水平触摸滑动效果

简易实现 TextView单行文本水平触摸滑动效果

时间:2022-04-23 23:16:27

相关推荐

简易实现 TextView单行文本水平触摸滑动效果

为了方便查看,已使用markdown编辑形成新博文。

本文Mardown地址

近期做应用的时候实用到TextView单行长文本,当文本内容过长时候又想实现触摸水平滑动效果。

网上找了非常多,都没有看到有效解决方式。

当中,最常见的也是最笨拙滴採用重写TextView并继承实现touch 和 Gesture手势。

后来经提醒发现了事实上最简单的方案:

直接使用EditText 就好了。

由于edittext须要编辑和移动光标的缘故。使得它是能够水平滑动的。因此我们仅仅须要设置其为透明背景,而且不能够获得焦点。

android:focusable="false"

<span style="background-color: rgb(240, 240, 240);"><span style="font-size:10px;">android:background="@android:color/transparent"</span></span>

(注:不能使用editable=“false”,由于这样就不能编辑滑动。而通过使用focusable="false"相同不可编辑同一时候能够滑动)

补充一点,要隐藏光标,仅仅用设置

android:cursorVisible="false"//隐藏

setCursorVisible(false);

这里记录下来给大家点儿启发。

不必用自以为聪明的方法办最笨的事儿。

共勉。

<EditTextandroid:id="@+id/tt"android:layout_width="0dip"android:layout_height="wrap_content"android:layout_weight="1"android:layout_margin="15dip"android:background="@android:color/transparent"android:focusable="false"android:singleLine="true"android:text="简易实现 TextView单行文本水平触摸滑动效果。简易实现 TextView单行文本水平触摸滑动效果。简易实现 TextView单行文本水平触摸滑动效果"android:textColor="#000"android:textSize="20dip" /></LinearLayout>

效果图:

源代码地址(附长文本折叠展开)

后边贴一些小白教程,能够忽视:(下面内容非原创,见谅)

一、仅仅想让TextView显示一行,可是文字超过TextView的长度怎么办?

在开头显示省略号

android:singleLine="true"

android:ellipsize="start"

在结尾显示省略号

android:singleLine="true"

android:ellipsize="end"

在中间显示省略号

android:singleLine="true"

android:ellipsize="middle"

横向自己主动滚动(跑马灯效果)

android:singleLine="true"

android:ellipsize="marquee"

android:marqueeRepeatLimit="marquee_forever"

android:focusable="true"

android:focusableInTouchMode="true"

以上4个效果都要加上 android:singleLine="true",由于TextView默认是会自己主动换行的

android:ellipsize是设置文字过长时。该怎么显示

android:marqueeRepeatLimit="marquee_forever"是设置永远反复。当然你也能够设置详细的数字

android:focusable="true"和android:focusableInTouchMode="true"一定要加上,不然滚动效果出不来

二、怎么让TextView能够垂直滚动?

在Java代码中增加以下一句话就能够实现垂直滚动

textView.setMovementMethod(ScrollingMovementMethod.getInstance());

如果觉得《简易实现 TextView单行文本水平触摸滑动效果》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。