【发布时间】:2015-03-19 01:44:31
【问题描述】:
我有一个包含自定义项目的列表视图,并且有些项目具有 OnClickListener。我想要做的是当我点击自定义项目显示和该项目下方的 ImageView 时,但该 Image 比列表视图的单元格大,所以我需要将它放在它外面并确定 X 和 Y,然后只显示它在该单元格的项目下方。我尝试了很多东西,但我没有把图像放在正确的位置。有什么想法可以实现吗?
这是我的最后一个代码,但我仍然无法在所有情况下都很好地工作。
请注意,此“工具提示”图像位于包含列表视图的布局中。
tooltipImage.setX(mListView.getX());
tooltipImage.setY(mListView.getY() - getTotalHeightofListView() / mListView.getChildCount());
tooltipImage.setVisibility(View.VISIBLE);
这是包含 listview 和 ImageView 的布局:
<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ListView
android:id="@+id/custom_listview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@null"
android:scrollbars="none" />
<ImageView
android:id="@+id/tootltip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:scaleType="centerInside"
android:src="@drawable/tootltip"
android:visibility="gone" />
</RelativeLayout>
【问题讨论】:
-
那么ImageView和ListView在同一个容器中?也许您可以发布该布局 xml。
-
@krislarson 我添加了布局,以便您可以看到它
-
点击时尝试获取listView的childView(convertView)。使用这个 childView getX as x 和 getY+getHeight as y 来定位您的 imageView,当然,您应该将 listView x,y 值相加。这可能会有所帮助。
-
@davidleen29 谢谢,我会试试的,你有什么用:当然,你应该把 listView x,y 值加起来。这可能有帮助吗?
-
你计算的childView的x,y值只是相对于它的父级(listView),而不是相对于relativeLayout。所以必须将 listView x,y 加起来相对于 relativeLayout。(在你的情况下,没有必要)
标签: android xml android-listview