首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用com.jmedeisis.draglinearlayout.DragLinearLayout在拖放后保存textView位置

com.jmedeisis.draglinearlayout.DragLinearLayout是一个开源的Android库,用于实现在拖放操作后保存TextView的位置。它提供了一个可拖拽的LinearLayout,可以让用户通过拖动来重新排列其中的子视图。

使用DragLinearLayout实现拖放后保存TextView位置的步骤如下:

  1. 首先,在你的Android项目中添加DragLinearLayout库的依赖。可以通过在项目的build.gradle文件中添加以下代码来引入该库:
代码语言:groovy
复制
implementation 'com.jmedeisis:draglinearlayout:1.2.1'
  1. 在你的布局文件中使用DragLinearLayout作为父容器,将需要拖放的TextView添加为其子视图。例如:
代码语言:xml
复制
<com.jmedeisis.draglinearlayout.DragLinearLayout
    android:id="@+id/dragLinearLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView 1" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView 2" />

    <!-- 添加更多需要拖放的TextView -->

</com.jmedeisis.draglinearlayout.DragLinearLayout>
  1. 在你的Java代码中,获取DragLinearLayout实例,并设置拖放监听器。在监听器中,可以通过保存拖放后的位置信息来实现保存TextView位置的功能。例如:
代码语言:java
复制
DragLinearLayout dragLinearLayout = findViewById(R.id.dragLinearLayout);
dragLinearLayout.setOnViewSwapListener(new DragLinearLayout.OnViewSwapListener() {
    @Override
    public void onSwap(View firstView, int firstPosition, View secondView, int secondPosition) {
        // 保存拖放后的位置信息,可以使用SharedPreferences或其他方式进行保存
        // 例如,可以将位置信息保存到一个List中,然后将该List保存到SharedPreferences中
    }
});

在上述代码中,通过设置OnViewSwapListener监听器,可以在拖放操作完成后获取到拖放前和拖放后的TextView视图以及它们的位置信息。你可以根据自己的需求,将位置信息保存到SharedPreferences或其他适合的存储方式中。

总结:

com.jmedeisis.draglinearlayout.DragLinearLayout是一个用于实现在拖放后保存TextView位置的Android库。通过添加DragLinearLayout作为父容器,并设置拖放监听器,可以实现拖放操作后保存TextView位置的功能。具体的实现步骤包括添加库的依赖、在布局文件中使用DragLinearLayout作为父容器,以及在Java代码中设置拖放监听器并保存位置信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【react-dnd使用总结一】拖放完成获取放置元素drop容器中的相对位置

工具函数-根据元素的起始位置和最终位置,计算相对于某元素的位置 export interface IPosition { left: number; top: number; } /** *...根据元素的其实位置和最终位置,计算相对于某元素的位置 * @param initialPosition 拖动元素相对于屏幕左上角的起始位置(偏移量) * @param finalPosition 拖放完成当前节点相对于屏幕左上角的位置...drop容器的位置. // finalY > initialY, 则视为向下拖拽, 否则是向上拖拽 const newYposition = finalY > initialY...finalX) - dropTargetPosition.left; return { left: newXposition, top: newYposition, }; }; drop...(偏移量) monitor.getSourceClientOffset(), // 拖放完成当前节点相对于屏幕左上角的位置 document.querySelector('#container

4.1K10

Android 使用代码实现一个选词(拖拽)填空题

optionPosition = getOptionPosition(optionContent); // 开始拖拽列表中隐藏答案选项 v.setVisibility(INVISIBLE...,我们为每个Button都设置了一个长按监听事件,下面来看看它是如何工作的,首先获取到当前拖拽选项上的答案,作为参数进行传递,然后记录选项的位置,这个是为了当拖拽未完成时,重新显示选项用的,最后列表中隐藏当前拖拽的选项...别担心,TextView中我们可以获取到每一个字符的坐标,当放开拖拽选项的时候,判断一下是不是处于某一个填空区域就大功告成了,别忘了还有填空处跨行的问题需要特殊处理一下。...到达指定位置,我们就要把选项中的答案填到题目中了,接下来该轮到fillAnswer方法大显身手了: /** * 填写答案 * * @param answer 当前填空处答案 * @param...效果图中我们可以看到,当填空完成,触摸填空处还可以继续拖拽的,继续往下看: ?

70120

Android-ConstraintLayout详解

app:layout_editor_absoluteX 这个是TextView界面中的纵轴和横轴的绝对坐标,没有,删除就行了。...大家看到TextView上下左右四个小空心圆点了吧,我们就是通过这个空心圆点给每个控件添加约束,每个控件的约束都分为垂直和水平两类,一共可以四个方向(上下左右)上给控件添加约束。...Inspector中有一个纵向的轴和一个横向的轴,这两个轴也是用于确定控件的位置的。如果调整了纵横轴的比例,那么TextView位置也会改变....,然后确定位置,添加约束。...6.Guideline  这个Guideline,我们拖拽实现的时候讲过,Guideline被用来添加一个垂直或水平方向上的辅助线,然后我们以此来确定控件的摆放位置,我们先说一下相关的属性: android

1.7K10

Android Studio 教程:创建 Android 应用

获得基本确认,您当然可以使其功能更加丰富。 我们将使用 Android development studio,并逐步解释如何使用它。本教程还使用图像来确定您需要执行的操作。...如何使用 Android Studio 创建 Android 应用程序 Studio 中创建 Android 应用程序 启动 Android development studio 在上面的屏幕上,...正文中,tab复制以下代码。 以下 .xml 文件是 MainActivity 的布局文件。您可以在此处创建交互式 UI。...该文件有一个 TextView 和一个按钮,可以通过从左侧面板拖放方法将其带到设计屏幕。 练习: 尝试示例屏幕中放置各种元素。 <?...单击此“单击我”按钮,我们会看到一个祝酒词(一条显示“按钮已单击!”的短消息)。

2.2K20

【实战技巧】VUE3.0实现简易的可拖放列表排序

---- 项目地址 项目地址点击进入,可以直接设置为浏览器主页或者桌面快捷方式进行使用,本人在用,长期维护。 源码地址 完全开源,大家可以随意研究,二次开发。...所以我就想添加一个拖拽排序的功能,在编辑模式下,可以通过拖拽图标进行排序,退出编辑模式自动保存,这样就解决了上面的问题,优化了用户体验。 下面就详细记录一下此功能的实现。...HTML拖放接口 首先还是先学习一下API 官方介绍 HTML 拖放(Drag and Drop)接口使应用程序能够浏览器中使用拖放功能。...dragstart中记录下旧的索引 dragover中记录下新的索引,每次经过一个都会更新 drop事件中处理数组,删掉旧的元素,目标索引添加新的元素 //简略的伪代码 详情请查看源码 { // 删除老的 const changeItem = marks.value.splice(oldItemIndex, 1)[0]; // 列表中目标位置增加新的

1.9K40

前端拾零02—H5拖放总结

拖放总览 前端拖放,无非通过两种方式:1、js鼠标事件监听,动态改变坐标位置;2、H5原生api。随着H5的普及,推荐使用相对简单的H5原生api实现拖放功能。...目标元素 3.1 目标元素监听事件 ondragenter: 拖放元素进入目标元素时触发事件,作用于目标元素 ondragover: 拖放元素目标元素上移动时触发事件,作用于目标元素 ondrop:...拖放元素目标元素上放置时触发事件,作用于目标元素 ondragleave: 拖放元素离开目标元素时触发事件,作用于目标元素 3.2 demo <div id="div1" ondragenter="dragenter...Event.dataTransfer Event.dataTransfer: <em>拖放</em>对象数据传递媒介,<em>保存</em>在dataTransfer对象中的数据只能在drop事件处理程序中读取 Event.dataTransfer.dropEffect...: 指定<em>拖放</em>视觉效果,只有搭配effectAllowed属性才会生效,<em>在</em>dragenter中设置 (1) none: 不能<em>拖放</em>(除文本框外所有元素的默认值) (2) move: 移动<em>拖放</em>元素 (3) copy

4.2K730

Python Qt GUI设计:UI界面可视化组件、属性概述(基础篇—3)

让我们一起看看吧~ geometry属性 geometry属性保存组件相对于其父级对象的位置和大小,Qt实际上是以一个长方形来表示组件的位置和大小的,包括左上角的坐标位置、长和宽。...,Qt Designer中可以通过属性acceptDrops设置部件是否接受鼠标拖放事件。...如果部件接受拖放,则在鼠标拖放时,拖放事件会发送给鼠标当前光标下接受拖放的第一个部件。 如果组件设置了acceptDrops属性为True,则就是通知系统该组件可接受鼠标拖放事件。...statusTip属性 statusTip属性保存statusTip提示信息,statusTip提示信息鼠标放到控件上时在窗口的状态栏显示提示信息,如果窗口无状态栏则不显示。...whatsThis的帮助信息一般组件获得焦点按Shift+F1弹出显示,如果这个快捷键被别的功能占用,则whatsThis的帮助信息可能无法展示。

5.4K50

H5拖放原生js将图片拖放另外一个元素里

1:什么是拖放拖放是一种常见的特性,即抓取对象以后拖到另一个位置。... HTML5 中,拖放是标准的一部分,任何元素都能够拖放 2:元素的可拖放 draggable 属性设置为 true 3:元素中的拖放事件 通过拖放事件...其中最关键的地方在于确定那里发生了拖放事件,有些事件是在被拖动的元素上触发的,而有些事件是放置目标上触发的。...按下鼠标键并开始移动鼠标时,会在被拖放的元素上触发dragstart事件。 触发dragstart事件,随即会触发drag事件,而且元素被拖动期间会持续发送该事件。...接下来,我们说拖放图片的事例。要求是这样的:有两个body里面有两个空div,几张img。我们要实现的是让图片可以随意拖放进入div里面,imgdiv里面可以随便更改位置

2K30

前端拾零02—H5原生拖放总结 【原创】

拖放总览 前端拖放,无非通过两种方式:1、js鼠标事件监听,动态改变坐标位置;2、H5原生api。随着H5的普及,推荐使用相对简单的H5原生api实现拖放功能。...目标元素 3.1 目标元素监听事件 ondragenter: 拖放元素进入目标元素时触发事件,作用于目标元素 ondragover: 拖放元素目标元素上移动时触发事件,作用于目标元素 ondrop:...拖放元素目标元素上放置时触发事件,作用于目标元素 ondragleave: 拖放元素离开目标元素时触发事件,作用于目标元素 3.2 demo <div id="div1" ondragenter="dragenter...Event.dataTransfer Event.dataTransfer: <em>拖放</em>对象数据传递媒介,<em>保存</em>在dataTransfer对象中的数据只能在drop事件处理程序中读取 Event.dataTransfer.dropEffect...: 指定<em>拖放</em>视觉效果,只有搭配effectAllowed属性才会生效,<em>在</em>dragenter中设置 (1) none: 不能<em>拖放</em>(除文本框外所有元素的默认值) (2) move: 移动<em>拖放</em>元素 (3

1.9K20

简单高效的实现 Android App 全局字体替换

为了能够API 14或者以上的设备上使用Fonts in XML特性,我们需要使用到Support Library 26。更多的内容可以参考「使用Support Library」小节。...将字体文件拖放到新的 res / font 文件夹中。Android O支持 .otf(OpenType) 和 .ttf(TrueType) 两种格式的字体文件。 ?...布局中使用字体资源 给TextView添加字体 XML布局文件中,将fontFamily设置为你想要的访问的字体文件: <TextView android:layout_width="wrap_content...使用代码控制字体 Typeface typeface = getResources().getFont(R.font.myfont); textView.setTypeface(typeface); 使用...Android Support Library 26.0-beta1中,必须同时使用android和app命名空间进行声明,以确保Android O版本及以下设备上字体能够被正确加载。 <?

3.9K90

Excel880 VBA代码助手专业版正式发布OFFICE+WPS均可用 兼容32+64 鼠标中键快捷插入代码

以前的老朋友应该会很快上手,操作体验基本和老版代码助手一致,主要是改进了稳定性和保存速度,新朋友请认真阅读使用说明书,自己多多体会,相信也能很快入手。...【Alt+2】 呼出代码管理面板,可以快捷插入菜单点击调出管理面板 窗口布局介绍 搜索栏:面板左上角 树节点窗口:面板左侧中间 代码窗口:面板右侧 快捷菜单:代码窗口任意位置,鼠标中键单击后者Alt...节点窗口中,拖拽节点可以排序,可跨节点跨级别拖放,注意拖放操作是即时保存,请大改前提前备份代码库 树节点窗口【鼠标右键】弹出菜单,功能如下【修改名称,新建同级,新建下级,新建节点 收藏模块,收藏函数...,收藏选择,删除节点,全部折叠,全部展开】 本工具默认都在所选的节点下方进行操作 代码名称或者内容修改请点击保存代码库,这些操作非实时保存 注意窗体模块保存不要修改,会造成无法插入,需要备注可在标签栏填写...注册激活 安装后会获得7天全功能VIP版试用期 到期可点击菜单栏注册按钮,弹出注册窗口中按提示,微信扫码关注公众号EXCEL880,回复注册码即可得到激活码,公测期间激活正式版到2019-11-30

3.4K20

C#实现树型结构TreeView节点拖拽的简单功能(转)

http://www.cnblogs.com/jirigala  例子程序运行效果如何下   当然节点拖拽时,需要注意几个事情:    1:拖拽时总需要有提示信息比较好,防止误操作找不到被托摘到哪里去了...,并将拖放的效果设置成移动。                 ...                TreeNode targetTreeNode;                 // 获取当前光标所处的坐标                 // 定义一个位置点的变量...,保存当前光标所处的坐标点                 Point point = ((TreeView)sender).PointToClient(new Point(e.X, e.Y));                 ...// 根据坐标点取得处于坐标点位置的节点                 targetTreeNode = ((TreeView)sender).GetNodeAt(point);

3K10

Unity3D入门Demo-Cube移动-触发球体-切换场景

里面 测试运行 新建Unity3D项目–选择3D类型 Hierarchy面板下,单击鼠标右键,选择 UI–>Button 创建一个按钮,会自动创建Canvas 调整Button的位置到屏幕正中间,修改...Hierarchy 面板下的Cube游戏物体上 创建返回按钮并配置逻辑,保存Game场景 Hierarchy面板下,单击鼠标右键,选择 UI–>Button 修改Button按钮的位置到屏幕上面,...中间位置,调整大小 修改Text文字内容为“返回主菜单” 选中Button,选择右侧Inspector面板下面,OnClick下面的加号,将场景中的ChangeScenes拖放到RuntimeOnly...” 同样的方法, Hierarchy 面板下 右键Create Empty ,创建空的GameObject ,修改名称为 ChangeScenes,同样的方式将ChangeScenes.cs脚本拖放到...游戏物体上,填写SceneName变量处填写Menu 同上面的方法,添加Button按钮的点击触发 保存场景,命名为Lose 将场景添加到BuildSettings里面 选中4个场景,或者一个一个选择拖放

1.2K10

Yoink for macv激活版 临时文件拖放暂存工具

Yoink for mac是Mac os平台上的一款帮助用户更好的管理屏幕上的文件的Mac文件管理软件,Yoink for mac就是抽屉平时并不会显示出来,只有当你拖放文件,或者抽屉里已经有临时保存的文件之后...,才会显示,使用起来非常的方便简洁。...临时文件拖放暂存工具图片Yoink for ma特点Yoink是您文件的“架子”移动或复制文件可能很麻烦您必须按住鼠标按钮进行拖动,同时尝试导航到文件的目标位置。为什么不让Yoink为你保存这些文件?...步骤1拖动您要移动或复制到Yoink的文件步骤2您的鼠标空闲的情况下,更轻松快速地导航到文件的目标位置步骤3将文件从Yoink拖到他们应该去的地方丢掉一切。...将文件拖出Yoink 时,移动或复制文件时,其行为与Finder相同。就像在Finder中一样,如果您想强制复制文件,请按住键盘上的选项键(⌥)。如果您想强制移动,请使用命令键(⌘)。

65630

HTML5 拖放API与Vue.js实战

可以通过 DataTransfer API 把通过拖动操作传输的数据保存在拖动数据存储区中,这个 API 提供了拖放操作期间存储和访问数据的方式。...DataTransfer 提供了添加要通过拖放传输的项目的位置。...可以开始拖动操作时(调用 dragstart 事件时)将数据添加到拖动数据存储中,并且只能在完成拖放操作(调用 drop 事件时)才能接收数据。...最后,将 card 的透明度降低到 0.2 ,以便向用户提供一些反馈,表明该卡实际上已被拉出其原始位置。拖动完成,再把透明度恢复为 1。 现在可以拖动卡片了。接下来添加放置目标。...总结 本文中,我们介绍了什么是 HTML 5 拖放 API ,如何使用,以及如何在 Vue.js 中实现。 拖放功能也可以在其他前端框架和原生 JavaScript 中使用

4.3K10

Android ListView实现图文列表显示

ListView如果内容过多,可以滑动屏幕来显示,并且点击某一行可使用吐司方法弹出对应的水果名字。 1.新建项目,新建entity实体类包,包中建存储每行水果信息的Fruit类。...fruit.getImageName()); //获得指定位置水果的名字 return view; } } class ViewHolder{ //当布局加载过后,保存获取到的控件信息...ImageView ivImage; TextView tvName; } 5.MainActivity.java页面初始化数据信息,并添加点击每一行的点击事件。...7.注意FruitAdaopter.java类中的getView方法每个子项被滚动到屏幕内的时候都会被调用,每次都将布局重新加载一边,所以为了提高效率可以进行判断,如果程序运行过一次就将布局保存在参数...8.同样,getView中的获取控件id如果每次运行都要执行,会降低效率,所以也需要定义ViewHolder类存储获取的控件信息,当第一次运行时执行findViewById(),将所有的控件信息保存到实例的

1.9K20

分享一些实用的Chrome DevTools技巧

有一些您可能还不知道的小功能,现在给大家分享一下: “Elements”面板中拖放 “Elements”面板中,您可以拖放任何 HTML 元素来更改其位置。 ?...找到CSS属性的定义位置 cmd+click( Windows 上是 ctrl+click)元素面板中的 CSS 属性,DevTools 会在 Source 面板中将您指向定义的位置。 ?...保存到修改的CSS文件 点击您编辑的 CSS 文件的名称。会将其打开到“Sources”窗格,然后可以使用您应用的实时编辑进行保存。...使用 CSS 选择器查找元素 按 cmd+f(Windows中是 ctrl+f)打开“Elenemts”面板中的搜索框。...准备就绪脚本末尾按 Enter 键即可执行该操作: ? 清除控制台 您可以使用控制台左上角的清除按钮或按 ctrl+l 或清除控制台 cmd+k 。

1.4K00
领券