如何通过拉边缘手势调整视图大小?

2024-04-18

我正在寻找如下图所示的解决方案:

我需要在一个布局中有两个可调整大小的视图。 用户只需将分隔线移动到顶部(ScrollView B 变得更高)或底部(ScrollView A 变得更高)。

给出这种行为的最佳解决方案是什么?我知道我可以从 ScrollView 扩展并覆盖public boolean onTouchEvent(MotionEvent ev) and protected void onDraw(Canvas canvas),但可能有更简单的解决方案。我想避免计算移动的数学。感谢您提供任何信息。


如果你想快速解决这个问题,我建议你使用分割窗格布局 https://github.com/MobiDevelop/android-split-pane-layout.

Usage :

 <com.mobidevelop.spl.widget.SplitPaneLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:spl="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:id="@+id/splitPaneLayout"
        android:layout_height="match_parent"
        spl:splitterSize="12dp"
        spl:orientation="vertical"
        spl:splitterPosition="50%"
        spl:splitterBackground="#781b23">

        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:padding="5dp"
                android:text="" />

        </ScrollView>

        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:padding="5dp"
                android:text=""/>

        </ScrollView>

 </com.mobidevelop.spl.widget.SplitPaneLayout>

我通过为纵向和横向模式创建两个 xml 解决了您的问题。对于纵向模式,我通过添加将面板的方向设置为垂直spl:orientation="vertical"对于横向模式,我通过添加将面板的方向设置为水平spl:orientation="horizontal".

After doing all this, I got the look like below. enter image description here enter image description here

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

如何通过拉边缘手势调整视图大小? 的相关文章

随机推荐

  • 指向动态分配的 boost multi_array 中的类的指针,未编译

    我对 C 和 Boost 还很陌生 我想要 world 类的对象有一个名为 chunk 类型为 octreenode 的数组 以前我有一个普通的一维数组 这工作得很好 现在我尝试转向使用具有 Boost 的 multi array 功能的
  • 使用 PHP 从多选下拉列表中获取数据并插入到 MySQL 中

    我的数据库中有一个使用以下命令创建的日期列表SET数据类型 SET Mon Tue Wed Thr Fri Sat Sun 我希望用户能够使用多选下拉列表选择多天放入数据库
  • 如何在 WPF 中按名称查找样式触发器嵌入元素?

    首先 问题的核心 如果通过样式触发器将一个元素指定为 ContentControl 的内容 我似乎无法按名称找到它 现在 了解更多详细信息 我有一个面板 其布局和功能根据其数据上下文而有很大差异 这是来自错误库的错误 当该错误为空时 它是一
  • 根据合并请求触发 gitlab-ci 中的作业

    是否可以仅根据合并请求从 gitlab ci 运行作业 现在 我们有一个包含大量测试的大型整体项目 但我们只想在合并到分支 master 之前运行测试 嗯 目前还没有内置 但是您自己也不是不可能 Gitlab 允许trigger https
  • 支持 __getitem__ 的类的 Python 类型提示

    我想向一个函数添加类型提示 该函数将接受带有 getitem 方法 例如 在 def my function hasitems locator hasitems locator 我不想限制hasitems成为特定类型 例如list or d
  • 如何将查询字符串传递给backbone.js 路由

    我正在使用 Backbone js 和 jQuery mobile jQuery 移动路由被禁用 我仅将库用于 UI 除了选择页面转换之外 我一切正常 我需要将页面转换 向上切片 淡入淡出 向下滑动 传递到主干路由器 因为转换根据用户来自的
  • 获取数据工厂中单个管道执行的成本

    我正在考虑使用 Azure 数据工厂 V2 进行集成导入 并想知道是否有办法跟踪正在运行的各个管道的成本 例如 如果我有 3 个管道 代表 3 个不同的集成 是否有办法查看每个管道产生的成本 还有一种方法可以近乎实时地执行此操作 以便在一个
  • 我们应该使用 setTargetFragment() 吗?我认为 Fragments 不应该互相通信

    Android开发者教程建议我使用片段的宿主活动来传递数据等等 那么为什么有一个设置 获取目标片段方法呢 到目前为止 我的应用程序包含一个主机活动和一个片段 其中有一个启动按钮DialogFragment 其中有一个按钮可以启动另一个Dia
  • Pandas 会影响 Rapidfuzz 匹配的结果吗?

    我正在碰壁 如果我在 pandas 数据帧内运行 Rapidfuzz 以及单独运行它 它会为字符串分数相似性提供不同的结果吗 为什么地址相似度 2 和最后一行的结果不同 from rapidfuzz import process utils
  • 在 Android 中使用带有自定义标签的块模板引擎

    我正在尝试在 android 中使用 chunk 我需要这样的东西 Suppose 以下是标签 tags 世界 世界 c 丹尼斯 里奇 苹果 工作 Input HELLO world C 是由 c 而java是由 java 编写的 hola
  • 在 R 中安装插入符包时出现依赖问题

    我正在尝试安装 R 包caret 这给了我ERROR dependencies ggplot2 reshape2 BradleyTerry2 are not available for package caret 我尝试单独安装其中的每一个
  • 如何在SCSS中获取数组的$values?

    我正在制作自己的插件 通过编写单个插件自动进行多个媒体查询 includeSCSS 中的行 所以当我输入时 include medias bp values width 输出应该是这样的 media all and min width 56
  • unix select() 调用:如何组合 fd_sets?

    我正在用 C 语言为 Linux 编写一个应用程序 它使用 2 个独立的第三方库 这两个库都是异步的并使用 select 他们还提供了一个 API 可以返回他们等待的文件描述符 我的目的是将它们传递给我自己的 select 然后在设置了自己
  • toDF 问题,值 toDF 不是 org.apache.spark.rdd.RDD 的成员

    我已附加错误 value toDF is not a member of org apache spark rdd RDD 的代码片段 我正在使用 scala 2 11 8 和 Spark 2 0 0 您能帮我解决 API toDF 的这个
  • 如何使用 TensorFlow 每次训练 CNN(MNIST 数据集)时获得相同的损失值?

    我想对卷积神经网络 使用 MNIST 数据集和 TensorFlow 进行几次新的训练 并且每次都获得相同的准确度结果 为了得到这个我 保存未经训练的仅初始化的 global variables initializer 网络 每次我开始训练
  • 当文件位于根目录中时取消链接 PHP 才起作用,而当文件位于文件夹中时则不起作用

    所以这个非常简单 我想使用 PHP 删除服务器上的文件 我有 myfile theone png unlink myfile 此代码删除该文件 但是如果文件的路径是 images theone png 则它不起作用 我尝试过 images
  • 在不平衡树上拆分 OpenMP 线程

    我正在尝试使用 OpenMP 并行进行树操作 例如对树中所有叶子中的数字进行求和 我遇到的问题是我工作的树不平衡 子节点的数量不同 分支的大小也不同 我目前在这些树上使用递归函数 我想要实现的是 1 在第一个可能的机会时分割线程 假设它是一
  • 我可以运行 Robotium 测试但无法调试它

    我正在测试一个 apk 但我的手机上没有其源代码 我已确保测试和应用程序 APK 中具有相同的证书 我可以从 Eclipse 中正常运行测试 但是当我尝试通过 调试为 进行调试时 Eclipse 似乎无法启动测试 在底部的进度栏中 我看到
  • 如何将命令行选项传递给 Android Studio 中的模拟器?

    我使用Android Studio 2 1 3 当我运行 Android 应用程序时 我选择 AVD 我可以在哪里传递命令行选项 例如 http proxy 我什至在运行配置中找不到方法 我找到了一个 hacky 解决方案来向 Androi
  • 如何通过拉边缘手势调整视图大小?

    我正在寻找如下图所示的解决方案 我需要在一个布局中有两个可调整大小的视图 用户只需将分隔线移动到顶部 ScrollView B 变得更高 或底部 ScrollView A 变得更高 给出这种行为的最佳解决方案是什么 我知道我可以从 Scro