zoukankan      html  css  js  c++  java
  • 简易实现 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);

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

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

    共勉。

    <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()); 


  • 相关阅读:
    TrendMicro PcCillin 2005卸载密码忘记。
    解决Exchange OWA用户登陆后有的用户文件夹显示中文有的显示英文。
    注册表解锁
    修改Linux Fedora Grup的默认启动系统.
    OfficeXP升级到SP3后outlook出现的恼人的提示。
    在 Outlook 中单击超链接时收到错误信息
    windows sbs 2003的功能限制和其他用法
    今天打了加强型乙肝疫苗。
    WSUS服务器的详细配置和部署转载
    当邮箱存储数据库达到 16 GB 限制时,Exchange Server 2003 邮箱存储无法装入
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5276056.html
Copyright © 2011-2022 走看看