Android ScrollView的各种适配

Android Studio开发学习(五)——ImageView、ListView、GridView、ScrollView、HorizontalScrollView 一、前提 二、目标 ImageView 三、内容 1、常用属性 2、加载网络图片 阅读详情

背景
这里是为了解决在ScrollView包裹下,出现的各种奇葩问题。


在ScrollView包裹下ListView无法伸展开的问题

public class AdaptSvListView extends DigitalListView {

    public AdaptSvListView(Context context) {
        super(context);
    }

    public AdaptSvListView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public AdaptSvListView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    /**
     * 重写该方法,达到使ListView适应ScrollView的效果
     */
    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, expandSpec);
    }

}


防止包裹的ListView或GridView设置高度后,ScrollView的初始位置不在0

public class NotZeroScrollView extends ScrollView {

    public NotZeroScrollView(Context context) {
        super(context);
    }

    public NotZeroScrollView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public NotZeroScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    public void scrollTo(int x, int y) {
        //super.scrollTo(x, y);
    }
}


可设置可滑动不可滑动的ViewPager

public class ScrollAbleViewPager extends ViewPager {

    private boolean scrollAble = true;

    public ScrollAbleViewPager(Context context) {
        super(context);
    }
    public ScrollAbleViewPager(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    /**
     * 设置是否可滑动
     * @param scrollAble  false不可滑动,true可滑动
     */
    public void setScrollEnabled(boolean scrollAble) {
        this.scrollAble = scrollAble;
    }

    @Override
    public boolean onTouchEvent(MotionEvent arg0) {
        if (!scrollAble)
            return false;
        else
            return super.onTouchEvent(arg0);
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent arg0) {
        if (!scrollAble)
            return false;
        else
            return super.onInterceptTouchEvent(arg0);
    }
}


在ScrollView包裹弹出PopupWindows导致ScrollView滚动的问题

public class NotZeroScrollView extends ScrollView {

    public NotZeroScrollView(Context context) {
        super(context);
    }

    public NotZeroScrollView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public NotZeroScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    public void scrollTo(int x, int y) {
        //super.scrollTo(x, y);
    }
}
Android入门第20天-Android里的ScrollView的使用 Android里的ScrollView-滚动条的使用以及需要注意的异步加载显示的问题。 阅读详情

相关推荐

避开ns-3学习深坑:用sns3模块快速搭建GEO卫星通信仿真(附GitHub代码解读)

本文介绍了如何使用sns3模块快速搭建GEO卫星通信仿真环境,绕过复杂的ns-3底层细节。通过详细的Linux环境配置、sns3模块安装和示例代码解读,帮助开发者快速上手卫星通信仿真,并提供了常见问题的解决方案和性能优化技巧。

weixin_28720573的博客 440

【Android从零单排系列二十六】《Android视图控件——ScrollView》

由于ScrollView一次性将全部内容加载到内存中,对于特别庞大的视图可能会导致性能问题。在处理大数据集或需要与后端交互的情况下,推荐使用RecyclerView等更高级的容器组件来动态加载和展示数据,从而提供更好的性能和用户体验。

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 4888

【操作系统】Hello CTF-专为CTF比赛封装的虚拟机 Beta版

很多师傅在学习与研究CTF的道路上,总是碰到想提升自我水平,但缺少本地化的训练环境以及安装各类软件的烦恼现象;因此拥有一些趁手“武器”,干起活来将会事半功倍。CTFos是探姬(ProbiusOfficial)专为CTF比赛封装的虚拟机,基于工具集封装多个版本和系统。CTF入门选手各行业网络/信息从业人员安全相关工作人员但不想在工作机上安装CTF一些奇葩的软件…该系统是通过虚拟机封装的,需要使用打开!一个专为CTF比赛封装的虚拟机,开箱即用。

qq_47493625的博客 1万+

22. 【Android教程】滚动条 ScrollView

到这里基本上你已经掌握了 Android 所有的常用控件,不知道有没有这样的疑惑:如果控件太多,在有的小尺寸手机上将屏幕占满了怎么办?是不是有一种通用的解决方法?没错,本节的主角——ScrollView 就是来帮你解决这个问题的,它让你的控件能够在屏幕显示不足的情况下,支持滚动展示。

这是一个web全栈开发的博客,取其精华去其糟粕,争取让大家一看就懂,一学就会,一用就成~ 3491

别再迷信Intel网卡了!用普通笔记本+TWINCAT3搭建EtherCAT主站的完整避坑实录

本文详细介绍了如何用普通笔记本和TWINCAT3搭建EtherCAT主站的完整避坑指南。通过破除必须使用Intel网卡的迷思,提供软件环境搭建、关键配置步骤、Wireshark抓包技巧及性能优化建议,帮助开发者低成本实现EtherCAT主站功能。

weixin_29305337的博客 707

pi-star图形界面安装指南

pi-star图形界面安装指南,MMDVM热点安装,树莓派3B+热点

blueisman的专栏 1911

Android 的 ScrollView (滚动条)

另外用这玩意的时候要小心异步的玩意,就是addView后,有可能还没有显示完, 如果这个时候直接调用该方法的话,可能会无效,这就需要自己写handler来更新了~一般对于可能显示不完的情况,我们可以直接在布局的外层套上一个: ScrollView或者HorizontalScrollView!嘿嘿,原来是一个FrameLayout的容器,不过在他的基础上添加了滚动,允许显示的比实际多的内容!,可以是单一的组件,又或者一个布局包裹着的复杂的层次结构!()参数依次为x,y滚到对应的x,y位置!

leyang0910的博客 2767

别再只用串口助手了!用LabVIEW给STM32F103C8T6做个专属上位机(附完整源码)

本文详细介绍了如何利用LabVIEW为STM32F103C8T6开发定制化上位机,替代传统串口助手,实现高效数据交互。内容涵盖硬件架构设计、STM32固件优化、LabVIEW上位机开发技巧及工业级应用案例,特别适合需要实时数据采集与处理的工控场景。

weixin_42524762的博客 368

android中ScrollView的使用

水平方向滚动时,layout_width属性值设置为wrap_content,layout_height属性值设置为match_parent.这段时间的工作不忙,我想这把之前遇到的问题拿出来整理一下,当然了时间也比较久远了很多东西我也记不太清除。重点是什么是他的layout_height这个属性不能设置高度也不能设置成mach_parent,只能设置成wrap_content。当我在工作中使用ScrollView的时候我发现他不能够滑动,好像他的高度是固定的。知道后来我看了别的老师的课程我才知道原因。

Rssqzqyp的博客 892

从仿真到流片:手把手教你优化65nm CMOS电荷泵的电流匹配与稳定性

本文详细介绍了在65nm CMOS工艺下优化电荷泵电流匹配与稳定性的工程实践指南。通过蒙特卡洛仿真、运放反馈结构版图技巧和全差分结构设计,实现优于1%的电流匹配精度和±2%以内的电流稳定性,特别针对current mismatch问题提供了有效的解决方案。

weixin_42522320的博客 417

2025年下半年网络规划设计师综合知识真题及答案解析

1983年,ARPANet完成技术转型,对此后的 Internet发展全关重要,这一转型是指( ) A.电路交换转向分组交换 B.商业化转型 C.民用化转型 D.从 NCP 协议转向 TCP/IP 答案:D 解析:ARPANet 最初使用 NCP (Network Control Protocol)协议进行主机问通信。1983年1月1日,ARPANet 正式切换到TCP/IP 协议族,为后续Internet的发展奠定了统一协议基础。

鹿鸣天涯 931

【Android】webview嵌套在scrollview适配

应用场景:scrollview 嵌套webview. 首先说一下webview的两种加载方法: 1.webview直接显示text/html 富文本: loadDataWithBaseURL(null, string, "text/html", "utf-8", null); webview提供 loadDataWithBaseURL(),但是当文本中有图片或者音频视频时候,布...

RN学习-问题汇总 545

C++ Qt6 qml CMakeLists.txt如何添加qrc文件

本文介绍了在Qt6项目中如何通过CMake管理QML图片资源。相比Qt5的qmake,CMake需要手动创建qrc文件并配置CMakeLists.txt。关键步骤包括:1)创建resources.qrc文件并添加图片资源;2)在CMakeLists.txt中设置CMAKE_AUTORCC为ON开启自动资源处理;3)使用qt_add_resources将qrc文件绑定到项目。配置完成后,可通过"qrc:alias"方式引用资源图片,解决了相对路径管理复杂的问题。

琅嬛福地 1453

安卓Timpicker样式修改、多版本适配、ScrollView滑动冲突

·安卓Timpicker样式修改、多版本适配、ScrollView滑动冲突

李彬博客专栏 1590

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Android开发工程师文集-Fragment,适配器,轮播图,ScrollView,Gallery 图片浏览器,Android常用布局样式

Android开发工程师文集-Fragment,适配器,轮播图,ScrollView,Gallery 图片浏览器,Android常用布局样式FragmentFragmentManager fragmentManager = getFragmentManager(); FragmentTransaction beginTransaction = fragmentManager.beginTransa...

程序员哆啦A梦,蓝胖子 593

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

《Android ScrollView嵌套GridView适配问题》

一、开发背景:当ScrollView里面嵌套GridView或者ListView的时候,会出现GridView的高度无法自适应的问题: 就如上如这般,会出现同一个GridView无论用那种显示模式都会出现只显示三个图的情况(只显示一行),剩下的三个需要通过手动的操作进行操作。而需求则是需要显示全部的内容。 二、经过一番查找,处理方法有两种: (1)在listView.se...

墨客联盟 514

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Android 6.0 View行为变更适配

Android 6.0 View行为变更适配一.相关知识参考二.异常现象分析(一).正常情况(二).异常情况(三).异常行为分析1.为何ScrollView滑动不上去了,而RecyclerView可以自己滑动2.为何RecyclerView的高度发生改变3.UNSPECIFIED的size如何影响RecyclerView测量4.UNSPECIFIED的size为何不为0(1)6.0之前的Scrol...

依生依世 564

Android兼容性优化-ScrollView滚动监听适配方案

Android兼容性优化-Android M以下兼容ScrollView.setOnScrollChangeListener() 方案崩溃日志:java.lang.NoClassDefF...

heiyl的专栏 875

Android 下拉刷新控件之ScrollView版本实现

这还是一个下拉刷新的控件 其实也是对于下拉控件类似与ListView的一个扩展。 对于ListView下拉刷新详情见: http://blog.youkuaiyun.com/nono_love_lilith/article/details/7100845 然后下面一哥们索要demo,顺便写了下,也顺便也说明下ScrollView版本的下拉和资源下载地址。 效果图1: 效果图2:

killnono 1万+

Android scrollView和viewpager嵌套 指示器吸顶 根据viewpager每个页面的内容适配高度

这几天 朋友问我了个问题  有个特别的需求  页面如下 就是当viewpager里面的当前页面内容足够多的时候  要去能滑上去 并且指示器吸顶  但是当内容不多的时候  能滑到哪就停在哪  当时第一反应是用coordinatelayout  结果不行 内容少的时候  也直接滑到顶部了  activity的xml文件   <RelativeLayout xmlns:android...

suwenlai的博客 3101

安卓WebView与ScrollView嵌套大面积空白解决小技巧和适配

回到正题,为了解决大面积空白的问题,我使用了下面的小技巧勉强达到了想要的效果,只不过代价是放弃了webView的缩放,如果哪位大神有好的解决方案,敬请赐教。wv.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN); wv.setVerticalScrollBarEnabled(fal

面朝大海,春暖花开 3714

Android9编程十:ScrollView

Android Layout,内容超出显示范围,使用ScrollView提供内容滚动能力。

nkmnkm的专栏 807

安卓WebView与ScrollView嵌套大面积空白解决小技巧

最近使用到WebView,使用过程中遇到了以下的问题,和大家分享一下。 首先看一下控制webView宽度的方法: 这是API对于此方法的说明:当false时,此WebView的宽度始终是Web页面CSS中控制的宽度,因此要适配屏幕此方法要为true。 API说明:这种加载模式,是缩小内弄以适配屏幕宽度。 所以,WebView适配屏幕的时候要将这2个方法都设置为true

2416

安卓沉侵式状态栏以及监听ScrollView滑动

-类似于手机QQ空间最顶部的效果

712

Android 自定义listview适配ScrollView 自动计算高度

public class MyListView extends LinearLayout { private BaseAdapter adapter; private MyOnItemClickListener onItemClickListener; boolean footerViewAttached = false; private View footervie

魑魅魍魉9527 1151

ScrollView中嵌套ListView,GridView

1、重写ListView,GridView public class TestListView extends ListView{        public TestListView(Context context) {          super(context);          // TODO Auto-generated constructor stub      } 

d76ty76rtf的专栏 841
上一篇: 集成第三方组件--七鱼客服
下一篇: 常用的优秀开源项目
A_xun_A
博客等级 码龄17年 10粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值