项目问题总结

2023-11-06

1.android studio 导入开源项目源码时要注意与自己包的冲突  比如 你有一个com.xxxx的包,而需要导入的是com.xx.yy 你就不能把整个包复制过来,否则会报can't resolve symbil...

因为它根据com会到你原来的包中去找相关的类。所以考的时候 只需把 xx.yy 考的你原有的 com目录下即可。


2.获取屏幕宽度: 第一种:

 /**
     * 获取屏幕的高 尺寸像素px
     *
     * @param Activity
     * @return int
     */
    public static int getScreenHeight(Activity cont) {
        DisplayMetrics dm = new DisplayMetrics();
        // 取得窗口属性
        cont.getWindowManager().getDefaultDisplay().getMetrics(dm);
        // 窗口的高度
        return dm.heightPixels;
    }
       第二种:
    /**
     * Context
     * @param context
     * @return
     */
   public static int get_Height_bycontext(Context context) {
        DisplayMetrics dm = new DisplayMetrics();
        WindowManager wm = (WindowManager) context
                .getSystemService(Context.WINDOW_SERVICE);
        (wm.getDefaultDisplay()).getMetrics(dm);

        int height = dm.heightPixels;
        return height;
    }
3.在listview 中嵌套listview   因为里面的listview 高度不确定,即使设置成match parent  显示的时候也只有那么一点,所以要重写里面的listview  的onMeasure

	@Override
	protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
                MeasureSpec.AT_MOST);
        
        
		super.onMeasure(widthMeasureSpec, <span style="font-family: Arial, Helvetica, sans-serif;">expandSpec</span>);
		

	}

但这样又会全部都显示出来,里面的listview 不能滑动 ,所以我们在里面的listview 之外再套一层linearlayout 布局 ,设个默认高度,在代码中获取屏幕高度再设置即可,这样虽然不全显示了但还不会滑动:

只能把外面的listview的事件放行了,让时间传递到子控件:

 @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {

        return false;

    }
这样子listview 就可以滑动了,但外面的滑不了了。。。解决方法是在修改上面的拦截方法:添加忽略view 只有点击指定的view才会屏蔽:类似这样:

  /**
     * 返回我们touch的区域是否是view 是返回该view  否则返回null
     *
     * @param ignoreviews
     * @param ev
     * @return
     */
    private View getTouchIgnoredView(List<View> ignoreviews, MotionEvent ev) {
        if (ignoreviews == null || ignoreviews.size() == 0) {
            return null;
        }
        Rect mRect = new Rect();
        for (View v : ignoreviews) {
            v.getHitRect(mRect);

            if (mRect.contains((int) ev.getX(), (int) ev.getY())) {
                return v;
            }
        }
        return null;
    }

 /**
     * 事件拦截
     */
    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        //处理ViewPager冲突问题
        ViewPager mViewPager = getTouchViewPager(mViewPagers, ev);
        View ignoredview = getTouchIgnoredView(ignoredviews, ev);
        if (ignoredview != null) {
            return super.onInterceptTouchEvent(ev);
        }


        if (mViewPager != null && mViewPager.getCurrentItem() != 0) {
            return super.onInterceptTouchEvent(ev);
        }
        if (allowslide_flage) {
            switch (ev.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    downX = tempX = (int) ev.getRawX();
                    downY = (int) ev.getRawY();
                    break;
                case MotionEvent.ACTION_MOVE:
                    int moveX = (int) ev.getRawX();
                    // 满足此条件屏蔽SildingFinishLayout里面子类的touch事件
                    if (moveX - downX > mTouchSlop
                            && Math.abs((int) ev.getRawY() - downY) < mTouchSlop) {
                        return true;
                    }
                    break;
            }
        }
        return super.onInterceptTouchEvent(ev);
    }






本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

项目问题总结 的相关文章

随机推荐

  • PT100热敏电阻原理解析

    什么是PT100 PT100电阻是指铂热电阻 其中PT是指 铂 元素 100是指铂热电阻的特性在0 时 电阻值刚好是100 所以通常称它为PT100热电阻或铂电阻 PT100是中低温区最常用的一种温度检测元件 其导体的电阻值随温度的增加而成
  • 嵌入式Linux驱动开发(I2C专题)(一)

    一 I2C协议 1 1 硬件连接 I2C在硬件上的接法如下所示 主控芯片引出两条线SCL SDA线 在一条I2C总线上可以接很多I2C设备 1 2 IIC传输数据的格式 1 2 1 写操作 流程如下 主芯片要发出一个start信号 然后发出
  • android studio报错Out of memory: GC overhead limit exceeded. Please fix the project‘s Gradle settings

    项目场景 提示 这里简述项目相关背景 例如 项目场景 从gitee上克隆下来的项目从android studio中打开 问题描述 提示 这里描述项目中遇到的问题 例如 数据传输过程中数据不时出现丢失的情况 偶尔会丢失一部分数据 APP 中接
  • scratch关于克隆停止的问题

    克隆这个代码在scratch中用处挺大的 但是在用的过程中也会出现一些问题 比如说克隆在到达一定数量之后会停止继续克隆 这是由于克隆是有个数限制的 昨天测了一下克隆体的个数限制是300个左右 如何去测 就是当作为克隆体启动时 用一个初始化为
  • word 安装

    目录 概述 word 安装 1 下载安装 2 解压运行 3 卸载移除 4 安装部署 5 激活 亲测可用 记录一下 概述 Office Tool Plus 是一个强大的 Office 部署工具 可以很方便地部署 Office 它基于 Offi
  • 基于遗传算法的多目标优化算法(matlab实现)

    1 理论基础 1 1 多目标优化及Pareto最优解 多目标优化问题可以描述如下 其中 f x 为待优化的目标函数 x为待优化的变量 Ib和ub分别为变量x的下限和上限约束 Aeq x beq为变量x的线性等式约束 A x b为变量x的线性
  • HBuilder X3.1.22安装教程(非常详细)从零基础入门到精通,看完这一篇就够了(附安装包)

    软件下载 软件 HBuilder X 版本 3 1 22 语言 简体中文 大小 278 95M 安装环境 Win11 Win10 Win8 Win7 硬件要求 CPU 2 0GHz 内存 4G 或更高 下载通道 百度网盘丨下载链接 http
  • RPA机器人流程适用性评估的9个要素

    组织通常可以从以下几个方面来考虑RPA机器人流程的筛选 确保在RPA机器人流程自动化过程中产生最大投资回报率 ROI 如何去选择有影响力且易于RPA机器人自动化的流程 1 影响成本和收入的流程 最具影响力的流程 例如 如果定价规则不明确 报
  • 17. 实战:手把手通关某音乐平台热门评论

    目录 前言 链接在评论区 目的 保姆级思路 最后奉上完整代码 运行效果 前言 众所周知 某音乐平台的评论区金句频出 热门评论更是美不胜收 我们也想要批量获取这些信息来做信息分析 数据处理等工作 也可以陶冶自己的情操 一举多得 所以我们今天来
  • 蓝以中老师《高等代数》第02章:向量空间与矩阵,笔记

    蓝以中高代第二章笔记
  • Android开源图表库MPAndroidChart

    MPAndroidChart是一款基于Android的开源图表库 MPAndroidChart不仅可以在Android设备上绘制各种统计图表 而且可以对图表进行拖动和缩放操作 应用起来非常灵活 和前面介绍的AChartEngine相比 MP
  • AutoSAR 学习笔记2:AutoSAR架构

    1 应用层 ASW 2 运行时环境层 RTE RTE 是专门为应用软件 AutoSAR 软件组件和 或 AutoSAR 传感器 执行器组件 提供通信服务的层 在 RTE 之上 软件架构风格从 分层 转变为 组件风格 AutoSAR 软件组件
  • 模板模式

    1 模板模式的概念 在模板模式 Template Pattern 中 一个抽象类公开定义了执行它的方法的方式 模板 它的子类可以按需要重写方法实现 但调用将以抽象类中定义的方式进行 这种类型的设计模式属于行为型模式 2 模板模式的特点 子类
  • 从煎鸡蛋的角度理解编程的思维和流程,你适合学吗?

    其实很多门外人对编程都是懵懵懂懂的 我们可以先看一张图来理解一下 思维 就是程序员需要考虑到的各种需求 也就是我们想让计算机帮助我们实现什么 表达 就是计算机可以看懂的指令也就是0和1 那怎么将我们所想向计算机说出来 并且让它帮我们执行 就
  • server2008r2域控时间设置internet时间同步(备忘)

    windows server 2008 r2成为域控后 时间设置里的 internet时间就没有了 为了解决这个问题 用以下CMD命令可解决 w32tm config manualpeerlist time windows com sync
  • iOS 应用获取最上层全屏 Window 的正确方法

    有时候 我们需要将View添加到最上层的Window上 比如 弹出框 Loading等 经常有同学直接通过 UIApplication sharedApplication windows lastObject 来获取 这种方法是非常不严谨的
  • leetcode----JavaScript 详情题解(4)

    目录 2722 根据 ID 合并两个数组 2723 添加两个 Promise 对象 2724 排序方式 2725 间隔取消 2726 使用方法链的计算器 2727 判断对象是否为空 2624 蜗牛排序 2694 事件发射器 2722 根据
  • 集成支付宝报错订单信息有错误,建议联系实家。 错误码: TOTAL FEE EXCEED

    问题 集成支付宝报错 订单信息有错误 建议联系实家 错误码 TOTAL FEE EXCEED 详细问题 笔者按照支付宝沙箱支付快速集成版进行操作 操作完成访问所集成的支付宝 页面如下 发起请求核心代码 response sendRedire
  • ubuntu(20.04)-shell脚本(4)-vmstat-iostat-expr-netstat-arp-Tracert-Route-NBTStat

    vmstat 好iostat 两个命令都适用于所有主要的类unix系统 linux的软件包 都在sysstat软件包中 1 vmstat iostat 基本语法 每列的意义 常用的 Free 空闲的内存空间 si 每秒从磁盘中交换进内存的数
  • 项目问题总结

    1 android studio 导入开源项目源码时要注意与自己包的冲突 比如 你有一个com xxxx的包 而需要导入的是com xx yy 你就不能把整个包复制过来 否则会报can t resolve symbil 因为它根据com会到