Android中TextView的滑动(横向/纵向)
来源:互联网 发布:冯绍峰双龙出洞 知乎 编辑:程序博客网 时间:2024/05/16 05:13
最近产品要求功能:文字显示的滑动效果
一开始自然就想到了ScrollView和HorizontalScrollView这两个可以实现横向和纵向的滑动,但是ScrollView 有个特性就是它的内部只能有一个子元素,这样如果有多个控件外层还得给套一层布局包裹,想想这样不仅费事,而且还会影响绘制,布局一旦嵌套过多就会导致重复绘制,多少会影响效率,而且产品需求只是简单的文字滑动,并没有其他复杂的控件,这样的话就只能从控件的属性下手了
纵向
既然是文本滚动,自然就想到了textView,于是去看了textview的基本属性,不负所望,TextView中有个scrollbars属性,设置滑动方式vertical,是不是有点小激动?这么快就好了?但是,设置之后发现没有什么用,并没有达到预期效果,经过查看,还有一个关键:支持对TextView的内容滑动,因此需要我们为Text设置setMovementMethod()方法于是再设置一下该方法
tv.setMovementMethod(ScrollingMovementMethod.getInstance());再试试,确实是可以滑动的,但是效果不尽如人意,部分手机测试发现上下滑动的时候背景就会变灰,手抬起后就又回复正常,不卖关子了,原因就是忘记设置textview 的textColor属性,设置个颜色就ok啦
<TextView android:id="@+id/text_T" android:layout_width="match_parent" android:layout_height="150dp" android:layout_marginBottom="5dp" android:layout_marginLeft="15dp" android:scrollbars="horizontal" android:layout_marginTop="15dp"android:textColor="@color/app_red_color"android:text="垂直滑动垂直滑动垂直滑动垂直滑动垂直滑动"android:textSize="15sp" />
tx.setMovementMethod(ScrollingMovementMethod.getInstance());
横向
是不是觉得直接把scrollbars的属性设置成horizontal就行啦?如果真的这么简单我还写什么博客呢?TextView自带了换行属性,就算设置成horizontal,还是达不到预期效果,水平滑动并不能进行,滑动还是纵向的,既然这样不行那就换个控件,于是就想到的TextView的子类EditText,因为EditText在输入东西的时候设置不能换行的时候光标是不是一直后移动的?只要我设置不让编辑是不是就可以实现水平滑动呢?想都没想就直接去做了,直接设置editable=“false”(android2.2后是depreceated的),直接跑起来,但是效果不尽人意,因为这样设置和TextView没有任何区别还是一样不能滑动,既然editabl是被废弃的,那就用enable没有被废弃的,结果还是一样,但是如果通过focusable="false"同样不可编辑同时可以滑动,那这两者有什么区别吗?
focusable 不可获得焦点。不可编辑;没有软键盘弹出;响应click事件。
editable android2.2后是depreceated的
enable 不可编辑;没有软键盘弹出;不响应click事件
扯远了,继续来看看横向滑动,将EditText的focusable属性设置为false可以达到想要的效果,但是还要注意一下,隐藏光标:布局文件中设置cursorVisible="false"或者在activity中将et.setCursorVisible(false);
<EditText android:id="@+id/redmin_text" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/dp15" android:background="@android:color/transparent" android:cursorVisible="false" android:focusable="false" android:singleLine="true" android:text="横向滑动。横向滑动。横向滑动。横向滑动" android:textColor="@color/app_red_color" android:textSize="14sp" />
- Android中TextView的滑动(横向/纵向)
- 可以纵向横向滑动的表格实现
- 横向滑动和纵向滑动互不受影响的ScrollView
- Android实现类似Excel的大表格,可横向纵向滑动,带表头
- Android中横向滑动(TabLayout+ViewPager)的实现
- Android中单行横向滑动的日历
- iOS 可以纵向横向滑动的表格实现
- 解决含有Textview布局在viewpager等横向滑动中滑动不流畅的bug
- 不间断的滚动(横向/纵向)
- Android可以纵向滚动的textView
- SQL纵向变成横向,横向变成纵向(经典案例添加自己的想法)
- 完美解决横向纵向滑动冲突
- Android横向滑动的GridView
- Android横向滑动的listview
- Android TextView的滑动
- Android的Menu的横向纵向排列问题
- Android EditText实现可横向滑动TextView效果
- 关于oracle中纵向记录横向显示的问题举例说明
- 关于CSDN博客插入的代码中出现html标记问题的解决方法
- 格式化json数据
- c++中vector的用法详解
- Spring Boot Dubbo 整合和入门理解
- POJ_1062 昂贵的聘礼【DFS】
- Android中TextView的滑动(横向/纵向)
- 基于STM32和ESP8266的低成本物联网控制盒子
- 793D Presents in Bankopolis
- 概率统计的奇妙结论
- HTTP详解
- FL Studio音频剪辑和剪辑菜单详讲
- 关于空指针的一点坑
- Invitation Cards poj1511(优先队列+邻接表+dijk)
- QML JS封装播放器时间格式显示