android:scrollbars 滑动滚动条代码控制

news/2024/5/17 20:08:16 标签: android, gitee

Android中的View对于ScrollBar和Scroll的支持是非常灵活的,不仅仅是UI样式可变,计算参数的方式也是可变的。


在Android中,任何View都可以显示出ScrollBar,唯一的条件是自身高度不足以显示全部内容。

在UI元素上,ScrollBar由两部分组成,一个是Track(滑道),一个是Thumb(滑块),这两部分都是可以定制的(指定自定义的drawable),另外ScrollBar的宽度(竖向)或高度(横向)也是可以控制的,相关的控制属性是:

滚动条不显示:android:scrollbars="none"
滚动条恒显示:android:fadeScrollbars="false"
设置水平滚动条的drawable(如颜色):android:scrollbarThumbHorizontal
设置垂直滚动条的drawable(如颜色):android:scrollbarThumbVertical
设置水平滚动条背景(轨迹)的色drawable(如颜色):android:scrollbarTrackHorizontal
设定滚动条宽度:android:scrollbarSize


    ScrollBar分为竖向的和横向的,也可以强制去掉,控制这一点的属性是:android:scrollbars
    对于竖向的ScrollBar,我们还可以控制它是显示在左边还是右边,控制这一点的函数是:setVerticalScrollbarPosition

ListView:

第一

stackFromBottom属性, 设置该属性之后你做好的列表在显示的时候会显示列表的最后几条信息,滚动条也会滚到最下面,值为true和false

android:stackFromBottom="true" 显示最后几条,默认为false。

第二

transciptMode属性,需要用ListView或者其它显示大量Items的控件实时跟踪或者查看信息,并且希望最新的条目可以自动滚动到可视范围内。通过设置的控件transcriptMode属性可以将Android平台的控件(支持ScrollBar)自动滑动到最底部。

android:transcriptMode="alwaysScroll"

第三

cacheColorHint属性,很多人希望能够改变一下它的背景,使他能够符合整体的UI设计,改变背景背很简单只需要准备一张图片然后指定属性 android:background="@drawable/bg",不过不要高兴地太早,当你这么做以后,发现背景是变了,但是当你拖动,或者点击list空白位置的时候发现ListItem都变成黑色的了,破坏了整体效果。

如果你只是换背景的颜色的话,可以直接指定android:cacheColorHint为你所要的颜色,如果你是用图片做背景的话,那也只要将android:cacheColorHint指定为透明(#00000000)就可以了

第四

divider属性,该属性作用是每一项之间需要设置一个图片做为间隔,或是去掉item之间的分割线

android:divider="@drawable/list_driver" 其中 @drawable/list_driver 是一个图片资源,如果不想显示分割线则只要设置为android:divider="@drawable/@null" 就可以了(原著是错误的,在eclipse @drawable/@null下无法编译,应该改为android:divider="#00000000")

第五

fadingEdge属性,上边和下边有黑色的阴影

android:fadingEdge="none" 设置后没有阴影了

第六

scrollbars属性,作用是隐藏listView的滚动条,

android:scrollbars="none"与setVerticalScrollBarEnabled(true);的效果是一样的,不活动的时候隐藏,活动的时候也隐藏

第七

fadeScrollbars属性,android:fadeScrollbars="true" 配置ListView布局的时候,设置这个属性为true就可以实现滚动条的自动隐藏和显示。

以下是我自己添加的

   第八

   android:scrollbarThumbHorizontal   设置水平滚动条的drawable(如颜色)。

   android:scrollbarTrackHorizonta    设置水平滚动条背景(轨迹)的色drawable(如颜色)。

   第九

   android:scrollbarThumbVertical     设置垂直滚动条的drawable(如颜色)。

  android:scrollbarTrackVertical    设置垂直滚动条背景(轨迹)的drawable。
 


Android上有一些控件,像listview, ScrollView滚动的时候右侧会出现一个滚动条,如何隐藏掉呢......

代码中:
setScrollbarFadingEnabled(true);//不活动的时候隐藏,活动的时候显示

setVerticalScrollBarEnabled(true);//不活动的时候隐藏,活动的时候也隐藏


xml中配置:

<ScrollView  

            android:layout_width="fill_parent"
            android:layout_height="wrap_content"

            android:scrollbars="none">
       <TextView

                android:id="@+id/showhtml"

                android:layout_width="fill_parent"
                android:layout_height="wrap_content" />
</ScrollView>

其中 android:scrollbars="none"与setVerticalScrollBarEnabled(true);效果一样。


修改ScrollView滚动条样式

在ListView/ScrollView/RecyclerView中添加属性:

<!-- 情况A :垂直滚动条-->
android:scrollbars="vertical"
android:scrollbarTrackVertical="@drawable/xxx_vertical_track"
android:scrollbarThumbVertical="@drawable/xxx_vertical_thumb"
<!-- 情况B :水平滚动条-->
android:scrollbars="horizontal"
android:scrollbarTrackHorizontal="@drawable/xxx_horizontal_track"
android:scrollbarThumbHorizontal="@drawable/xxx_horizontal_thumb"

<!-- 其他通用的属性 -->
<!-- 1.定义滚动条的样式和位置 -->
android:scrollbarStyle="outsideInset"
<!-- 2.定义滚动条的大小,垂直时指宽度,水平时指高度 -->
android:scrollbarSize="4dp"

即scrollbaTrackxxx,scrollbarThumbxxx自定义的 xml 文件,放在Drawable中,track是指长条,thumb是指短条,然后再 xml 中定义短条和长条的样式。

需要注意
其中,scrollbaTrackxxx、scrollbarThumbxxx可以使用:

  • Shape自定义 Drawable
  • 图片
  • .9.png
  • @color/xxx的方式使用颜色值

不可以直接使用#xxxxxx颜色值

android:scrollbarStyle

android:scrollbarStyle可以定义滚动条的样式和位置,可选值有insideOverlay、insideInset、outsideOverlay、outsideInset四种。

其中inside和outside分别表示是否在 view 的 padding 区域内,overlay和inset表示覆盖在 view 上或是插在 view 后面,所以四种值分别表示:


http://www.niftyadmin.cn/n/5473820.html

相关文章

C#WPF控件Menu详解

本文详解C#WPF控件Menu 目录 定义 Menu 控件的三种不同状态 Menu控件的属性 Menu控件的事件 MenuItem 类

腾讯云优惠券介绍、领券入口及使用教程分享

腾讯云作为国内领先的云服务提供商&#xff0c;为广大用户提供了稳定、高效、安全的云计算服务。为了吸引用户上云&#xff0c;腾讯云推出了优惠券活动。本文将对腾讯云优惠券进行详细介绍&#xff0c;包括优惠券的种类、领券入口以及使用教程&#xff0c;助力大家轻松上云&…

面试题——JVM老年代空间担保机制(我的想法)

这里借用一下人家的图&#xff0c;来说一下我的想法&#xff0c;嘻嘻。。。。 原文链接&#xff1a;一道面试题&#xff1a;JVM老年代空间担保机制-CSDN博客? 嗯&#xff0c;我觉得老年代担保机制的主要作用就是避免频繁触发FULL GC&#xff0c;这其实也是因为年轻代Minor GC…

解锁网络安全新境界:雷池WAF社区版让网站防护变得轻而易举!

网站运营者的救星&#xff1a;雷池WAF社区版 ️ 嘿朋友们&#xff01;今天我超级激动要跟你们分享一个神器——雷池WAF社区版。这个宝贝对我们这帮网站运营者来说&#xff0c;简直就是保护伞&#xff01; 智能语义分析技术&#xff1a;超级侦探上线 先说说为啥我这么稀饭它。雷…

贪心算法|45.跳跃游戏II

力扣题目链接 class Solution { public:int jump(vector<int>& nums) {if (nums.size() 1) return 0;int curDistance 0; // 当前覆盖最远距离下标int ans 0; // 记录走的最大步数int nextDistance 0; // 下一步覆盖最远距离下标for (int i 0;…

C++11中auto与decltype的区别与联系深入解析

文章目录 一、引言二、auto关键字及其特性1、auto的基本定义与用途2、auto在类型推导中的应用3、auto的局限性及需要注意的问题 三、decltype关键字及其特性1、decltype的基本定义与用途2、decltype在类型推导中的应用3、decltype的局限性及需要注意的问题 四、auto与decltype的…

【数据结构(二)】顺序表与ArrayList

❣博主主页: 33的博客❣ ▶文章专栏分类:数据结构◀ &#x1f69a;我的代码仓库: 33的代码仓库&#x1f69a; &#x1faf5;&#x1faf5;&#x1faf5;关注我带你学更多数据结构知识 目录 1.前言2.定义IList接口3.MyArraylist实现接口3.1定义成员变量与构造方法3.2添加元素3.3…

ElasticSearch 中分词与倒排索引的原理

首先是给检索用的。 英文&#xff1a;一个单词一个词&#xff0c;很简单。I am a student&#xff0c;词与词之间空格分隔。中文&#xff1a;我是学生&#xff0c;就不能一个字一个字地分&#xff0c;我-是-学生。这是好分的。还有歧义的&#xff0c;使用户放心&#xff0c;使…