我有一个包含自定义项的列表视图,有些项具有OnClickListener。我想做的是,当我点击自定义项目显示和该项目下方的ImageView时,但该图像比列表视图的单元格大,所以我需要它放在它的外部,确定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>
您称之为"工具提示",所以听起来像是希望它"浮动"在项目顶部。但是当用户滚动时会发生什么呢?
这里有一个建议:您可以使用ExpandableListView来实现这样的功能。您的列表项将是第一级。当你点击列表项时,它会展开,在它下面显示你的ImageView。这样,当用户滚动时,ImageView就会随之移动。
我做过这样的事情,我甚至隐藏了扩展/折叠指示符,这样ListView就不会看起来是可扩展的ListView。
最后,我将"工具提示"图像放在我的基本活动中,并将其定位在屏幕上,我从单击的图像中获得X和Y,并将工具提示定位在那里:
int[] listViewCoords = new int[2];
listView.getChildAt(pos).findViewById(R.id.image).getLocationOnScreen(listViewCoords);
getBaseActivity(listViewCoords[0] + imageWidht, [1] + imageHeight);
在我的基础上活动:
toolTip.setVisibility(View.VISIBLE);
toolTip.setX(x);
toolTip.setY(y);