我有自定义项目的列表视图,并且有一些项目具有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>
答案 0 :(得分:0)
您称之为&#34;工具提示&#34;所以听起来你想要它&#34;漂浮&#34;在项目的顶部。但是当用户滚动时会发生什么?
这里有一个建议:您可以使用ExpandableListView来实现这样的目标。您的列表项将是第一级。当您单击列表项时,它将展开以在其下方显示您的ImageView。这样,当用户滚动时,ImageView将随之移动。
我做过类似的事情,我甚至隐藏了展开/折叠指示器,以便ListView看起来不像是ExpandableListView。
答案 1 :(得分:0)
最后为了实现这一点,我把&#34;工具提示&#34;在我的基本活动中的图像,并将其定位在屏幕上我点击了图像中的X和Y并将工具提示放在那里:
int[] listViewCoords = new int[2];
listView.getChildAt(pos).findViewById(R.id.image).getLocationOnScreen(listViewCoords);
getBaseActivity(listViewCoords[0] + imageWidht, [1] + imageHeight);
在我的baseActivity上:
toolTip.setVisibility(View.VISIBLE);
toolTip.setX(x);
toolTip.setY(y);