为了方便查看,已使用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);

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

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

共勉。

<EditText
android: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单行文本水平触摸滑动效果的更多相关文章

  1. Android TextView 单行文本的坑

    这是android系统的一个bug,描述如下:https://code.google.com/p/android/issues/detail?id=33868 具体来说就是当一个TextView设置了 ...

  2. 页面PC端 / 移动端整屏纵向翻页,点击/触摸滑动效果功能代码非插件

    页面翻页,滑动功能示范代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...

  3. Android中实现整个视图切换的左右滑动效果

    Android中提供了一个Gallary,可以实现图片或者文本的左右滑动效果. 如何让整个视图都能实现左右滑动,达到类似于Gallary的效果呢?可以直接用一个开源的ViewFlow来实现.   项目 ...

  4. 仿Android网易新闻客户端,并增加水平图片滑动,改进阅读体验

    仿网易新闻Android端APP 主要功能展示和代码实现 差不多花了一周的时间,目前实现的了新闻下的包括头条.体育.娱乐的一系列的新闻展示,以及点击后进入的新闻详情展示. 目前效果 目前效果请访问该网 ...

  5. android131 360 05 手势触摸滑动,sim卡,开机启动的广播,手机联系人,SharedPreferences,拦截短信

    安卓手势触摸滑动: package com.itheima52.mobilesafe.activity; import android.app.Activity; import android.con ...

  6. 移动端触摸滑动插件Swiper

    移动端触摸滑动插件Swiper 04/02/2015 一.了解Swiper 目前移动端项目一般都需要具有触屏焦点图的效果,如果你也需要实现这一功能的话,Swiper是一个不错的选择. 1.他不需要加载 ...

  7. css单行文本与多行溢出文本的省略号问题

    在文字布局和代码编写过程中遇到文本溢出是常有的事,下面总结一下对于单行文本溢出和多行文本溢出省略号的处理. 一.单行文本省略号 <p class="text1"> 这是 ...

  8. pyqt5在textBrowser添加文本并自动滑动到底

    pyqt5在textBrowser添加文本并自动滑动到底 说明: 1.按下按钮pushButton,把单行文本框lineEdit里的内容循环不断的添加到多行文本展示框textBrowser.2.必须要 ...

  9. css单行文本及多行文本溢出显示省略号

    关于文本溢出的相关属性: 1. text-overflow: clip|ellipsis|string;   该属性规定当文本溢出包含元素时发生的事情. clip : 修剪文本. ellipsis : ...

随机推荐

  1. windows套接字相关函数

    windows套接字相关函数 作者:vpoet mail:vpoet_sir@163.com 我们学习TCP/IP协议无非是利用这些协议进行通信开发,然而如果让我们自己来直接根据协议规则和协议格式来进 ...

  2. [置顶] Jquery发展

    jQuery在2006年1月由美国人JohnResig在纽约的barcamp发布,吸引了来自世界各地的众多JavaScript高手加入,由DaveMethvin率领团队进行开发.是继prototype ...

  3. UVA 1599 Ideal Path(bfs1+bfs2,双向bfs)

    给一个n个点m条边(<=n<=,<=m<=)的无向图,每条边上都涂有一种颜色.求从结点1到结点n的一条路径,使得经过的边数尽量少,在此前提下,经过边的颜色序列的字典序最小.一对 ...

  4. 上传form表单

    <form name="theForm" method="post" action="index.php?m=back&c=Goods& ...

  5. java实现写大量数据到文件中

    生成.txt文件 生成.csv文件 生成.xls文件 import java.io.BufferedWriter; import java.io.File; import java.io.FileOu ...

  6. Spring(二)——IoC

    IoC(Inversion of Control)称之为控制反转,指的是在Spring框架的配置文件中声明对象,由框架负责创建对象,这叫做控制反转.实现方式有两种:DI(Dependency Inje ...

  7. Unity 3D 连接Mysql数据库

    要想使用Unity直接连接数据库需要以下几个动态库

  8. cacti出现snmp error

    一.在被监控机器中确认snmp是否启动 service snmpd status [root@test2 ~]# service snmpd status snmpd (pid  1247) 正在运行 ...

  9. ThinkPHP使用Memcached缓存数据

    ThinkPHP默认使用文件缓存数据,支持Memcache等其他缓存方式,有两个PHP扩展:Memcache和Memcached,Memcahe官方有说明,主要说一下Memcached. 相对于PHP ...

  10. easyui placeholder 解决方案

    最近,再用easyui的时候,发现easyui的input标签不支持h5的placeholder,为了实现这个效果,提供以下解决方案: 1.给input标签设置placeholder. <td& ...