ListView在ListView外部显示ImageView OnClick自定义位置

时间:2015-03-19 01:44:31

标签: android xml android-listview

我有自定义项目的列表视图,并且有一些项目具有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>

2 个答案:

答案 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);