java - 如何获取线性布局的子节点的位置?
问题描述
这是我的 xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="top"
android:rotation="180">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center"
android:id="@+id/cols">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/col1">
<Button .../>
<Button .../>
<Button .../>
<Button .../>
<Button .../>
<Button .../>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/col2">
<Button .../>
<Button .../>
<Button .../>
<Button .../>
<Button .../>
<Button .../>
</LinearLayout>
</LinearLayout>
</LinearLayout>
我想在所有按钮上单击侦听器,并且我想在单击按钮时获得位置。我尝试了几件事但没有成功。确实,我无法获得单击按钮的位置。
解决方案
试试这个逻辑:
在您的活动中,执行以下操作:
LinearLayout layout = findViewById(R.id.col1);
然后,在每个按钮的onClick
:
for(int i=0; i<layout.getChildCount(); i++) {
if(layout.getChildAt(i).equals(thisButton))//Replace thisButton with the variable name
{
//do something
// i represents the button's position in its immediate parent.
break;
}
}
同样的逻辑也适用于 LinearLayoutcol2
推荐阅读
- python - 如何为类初始化动态添加参数?
- linux - 如何在bash中限制配额命令的结果
- python - 置信区间的最小样本量
- sql-server - Azure 数据工厂:从 Oracle 12g 到 Azure SQL 服务器的数据迁移
- python - 在 python 中创建一个包含所有错误和警告的日志文件
- c++ - 嵌套的libcurl请求c ++
- office-js - Office Web Addin 项目中的 web.config 文件有什么用?
- android - Android RecyclerView GridLayoutManager 中心项目并保持相同的宽度
- android - 分别触发 OnClickListener 和 OnTouchListener
- storage-access-framework - 是否可以与其他应用程序共享使用存储访问框架存储的文件