普通用户
如何通过布局容器的触摸事件,完成对布局内多个组件的移动? [复制链接]
爱翻身的闲鱼 发表于 2025-08-15 84 4

在可视设计器内 点选 添加 线性布局1组件,在布局内加入按钮与编辑框。并确定组件位置关系。

创建事件内 写上布局1的位置值(布局1.左边=200)。但是 生成的app应用,在模拟器内运行 布局1.左边的位置值 不符代码设定处?!?

怀疑是布局 自动固定到根布局上。在布局1上多套了一层布局,但仍未正常显示?


可以写个 布局类组件的触摸事件 达成移动效果吗?

还是有相关 示例?

爱翻身的闲鱼 2025-08-16
引用 @Course 的回复:

轻语言安卓框架通过封装的方式简化了原生操作一些比较复杂的概念;因此通过原生方式向AI咨询轻舟框架问题,属于:问牛答马。

轻舟开发框架只是兼容原生开发,但不是和原生开发完全一样。

因此如果照着原生安卓开发的书本学习,建议先使用AndroidStudio通过Java方式,仿写例程、然后再使用轻舟开发,就会比较容易很多。

示例 触摸移动 例子 触点会跳 。照着写,然后移动有偏差


回复
官方技术组 2025-08-16

轻语言安卓框架通过封装的方式简化了原生操作一些比较复杂的概念;因此通过原生方式向AI咨询轻舟框架问题,属于:问牛答马。

轻舟开发框架只是兼容原生开发,但不是和原生开发完全一样。

因此如果照着原生安卓开发的书本学习,建议先使用AndroidStudio通过Java方式,仿写例程、然后再使用轻舟开发,就会比较容易很多。

回复
爱翻身的闲鱼 2025-08-16
引用 @喻志明 的回复:

豆包给的回答:

布局组件(如  LinearLayout 、 ConstraintLayout )与常用UI组件(如  Button 、 EditText 、 TextView )的最大区别,核心在于功能定位不同,具体可从以下4个关键维度区分:

 

1. 核心功能:“容器” vs “交互/展示”

 

- 布局组件:核心是**“容器功能”**,用于承载、组织和排列子组件(包括其他布局或常用UI组件),决定子组件的位置、大小和排列规则(如水平/垂直排列、相对位置约束等)。它自身不直接提供用户交互或内容展示能力。

例: ConstraintLayout  通过“约束条件”控制  Button  和  EditText  的相对位置,自身不显示内容。

- 常用UI组件:核心是**“交互/展示功能”**,直接向用户展示内容(如  TextView  显示文字)或接收用户操作(如  Button  响应点击、 EditText  接收输入)。它通常作为“子组件”被放在布局中,无法承载其他组件。

 

2. 层级关系:“父容器” vs “子元素”

 

- 布局组件:几乎都是  ViewGroup  的子类,本质是“视图容器”,支持通过  addView()  代码或XML嵌套的方式,包含多个子组件(布局或常用UI组件),形成界面的层级结构。

例:一个  LinearLayout  里可以放1个  Button 、1个  EditText  和1个嵌套的  RelativeLayout 。

- 常用UI组件:几乎都是  View  的直接子类(非  ViewGroup  子类),本质是“单一视图”,不支持承载子组件,只能作为布局的“子元素”存在,无法嵌套其他组件。

例:不能在  Button  里嵌套  TextView ,也不能在  EditText  里放  ImageView 。

 

3. 视觉表现:“默认不可见” vs “默认可见”

 

- 布局组件:默认无背景、无边框,仅作为“隐形容器”工作,视觉上不可见(需手动设置  background  才显形),其存在仅通过子组件的排列间接体现。

例:默认的  LinearLayout  放在界面上,用户看不到它,只能看到里面的  Button  和  EditText 。

- 常用UI组件:默认有基础视觉形态,无需额外设置即可被用户看到。

例: Button  默认有灰色背景和文字样式, TextView  默认显示黑色文字, EditText  默认有输入框边框。

 

4. 交互能力:“间接响应” vs “直接响应”

 

- 布局组件:默认无预设交互(如点击、输入),需手动添加触摸事件(如滑动)才能响应用户操作,且交互逻辑通常是为了控制子组件(如滑动布局带动子组件移动)。

例:给  LinearLayout  加滑动事件,目的是让里面的  Button  和  EditText  一起移动,而非布局自身需要交互。

- 常用UI组件:自带预设交互能力,无需额外代码即可响应特定操作。

例: Button  默认支持点击事件( setOnClickListener ), EditText  默认支持输入和光标操作, ImageView  支持长按弹出菜单等。


所以是使用问题,要对布局的可视 默认属性 更改设置。然后所写的相关代码才能生效[[笑cry]]


另外关于 按钮的移动 与布局的移动代码,有点难写。要监听按钮事件给布局组件[[呵呵]]


布局组件的**默认可视状态是“可见(visible:可见的)”**,并非“不可视”——你可能混淆了“可视状态(visibility:能见度;可见性)”和“视觉表现(是否有背景/边框)”。

 具体区分如下: - **可视状态(visibility)**:

安卓中所有视图(包括布局组件、按钮等)的 `visibility` 默认值都是 `View.VISIBLE`(可见且占空间),这是系统默认属性。

只要不手动修改,布局组件就处于“可被用户看到、可响应触摸”的状态。 - **视觉表现(是否显形)**:布局组件默认无背景、无边框,所以视觉上“看不到它的轮廓”,但这不等于“不可视(invisible/gone)”——它的“可见”体现在能承载子组件(如按钮、编辑框),且子组件能正常显示在界面上(若布局组件真的不可视,子组件也会跟着隐藏)。 

简单说:布局组件默认“能被看到(visible)”,只是“没穿衣服(无背景)”所以看不到它的框,但它的“承载功能”和“可见状态”始终存在,无需额外设置就能正常使用。

[[笑cry]]

回复
爱翻身的闲鱼 2025-08-16

豆包给的回答:

布局组件(如  LinearLayout 、 ConstraintLayout )与常用UI组件(如  Button 、 EditText 、 TextView )的最大区别,核心在于功能定位不同,具体可从以下4个关键维度区分:

 

1. 核心功能:“容器” vs “交互/展示”

 

- 布局组件:核心是**“容器功能”**,用于承载、组织和排列子组件(包括其他布局或常用UI组件),决定子组件的位置、大小和排列规则(如水平/垂直排列、相对位置约束等)。它自身不直接提供用户交互或内容展示能力。

例: ConstraintLayout  通过“约束条件”控制  Button  和  EditText  的相对位置,自身不显示内容。

- 常用UI组件:核心是**“交互/展示功能”**,直接向用户展示内容(如  TextView  显示文字)或接收用户操作(如  Button  响应点击、 EditText  接收输入)。它通常作为“子组件”被放在布局中,无法承载其他组件。

 

2. 层级关系:“父容器” vs “子元素”

 

- 布局组件:几乎都是  ViewGroup  的子类,本质是“视图容器”,支持通过  addView()  代码或XML嵌套的方式,包含多个子组件(布局或常用UI组件),形成界面的层级结构。

例:一个  LinearLayout  里可以放1个  Button 、1个  EditText  和1个嵌套的  RelativeLayout 。

- 常用UI组件:几乎都是  View  的直接子类(非  ViewGroup  子类),本质是“单一视图”,不支持承载子组件,只能作为布局的“子元素”存在,无法嵌套其他组件。

例:不能在  Button  里嵌套  TextView ,也不能在  EditText  里放  ImageView 。

 

3. 视觉表现:“默认不可见” vs “默认可见”

 

- 布局组件:默认无背景、无边框,仅作为“隐形容器”工作,视觉上不可见(需手动设置  background  才显形),其存在仅通过子组件的排列间接体现。

例:默认的  LinearLayout  放在界面上,用户看不到它,只能看到里面的  Button  和  EditText 。

- 常用UI组件:默认有基础视觉形态,无需额外设置即可被用户看到。

例: Button  默认有灰色背景和文字样式, TextView  默认显示黑色文字, EditText  默认有输入框边框。

 

4. 交互能力:“间接响应” vs “直接响应”

 

- 布局组件:默认无预设交互(如点击、输入),需手动添加触摸事件(如滑动)才能响应用户操作,且交互逻辑通常是为了控制子组件(如滑动布局带动子组件移动)。

例:给  LinearLayout  加滑动事件,目的是让里面的  Button  和  EditText  一起移动,而非布局自身需要交互。

- 常用UI组件:自带预设交互能力,无需额外代码即可响应特定操作。

例: Button  默认支持点击事件( setOnClickListener ), EditText  默认支持输入和光标操作, ImageView  支持长按弹出菜单等。


所以是使用问题,要对布局的可视 默认属性 更改设置。然后所写的相关代码才能生效[[笑cry]]


另外关于 按钮的移动 与布局的移动代码,有点难写。要监听按钮事件给布局组件[[呵呵]]

回复
 作者信息
爱翻身的闲鱼
普通用户 云验证
专业开发指导服务

响应时间:5分钟

服务方式:官方1对1服务

工作时间:工作日 9:00 - 18:30

专业团队 · 开发指导 · 极速响应


官网 | 基础视频教程 | 在线文档 下载 VcnStudio IDE

© VcnStudio Inc All Rights Reserved

蜀ICP备17024229号