我真的一直在努力解决这个问题,无论我做什么,我都会让弹出窗口出现在我不想要的地方。我希望它出现在我单击/触摸的位置,或者在我点击图像时与我触摸的位置有一点偏移。
这是我在 xml 中为点击图像时设置的方法:
public void loadPopUp(View v) {
popUp.showAtLocation((View) v.getParent().getParent(),
Gravity.NO_GRAVITY, 0, 0);
popUp.update(v.getLeft(), "No clue what to put here", 300, 80);
}
2 关于弹出窗口的事情我只是不确定。我是否应该将 showAtLocation 的第一个参数设为根视图,以便包含整个布局,而不仅仅是视图所在的布局?
此外,我“不知道该放什么”,因为我无法让我的 y 坐标正常工作。我的 x (v.getLeft()) 很好,因为我的应用程序不会左右移动,只是上下移动是我努力获取用户点击图像的位置。
XML:
<ScrollView xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:tag="small" >
<LinearLayout
android:id="@+id/godOverview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/godItemRowOneLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/godItem1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:clickable="true"
android:contentDescription="@string/god_recommended_item_1"
android:onClick="loadPopUp"
android:paddingBottom="3dp"
android:paddingTop="3dp"
android:src="@drawable/ic_launcher" />
<ImageView
android:id="@+id/godItem2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:clickable="true"
android:contentDescription="@string/god_recommended_item_2"
android:onClick="loadPopUp"
android:paddingBottom="3dp"
android:paddingTop="3dp"
android:src="@drawable/ic_launcher" />
<ImageView
android:id="@+id/godItem3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:contentDescription="@string/god_recommended_item_3"
android:onClick="loadPopUp"
android:paddingBottom="3dp"
android:paddingTop="3dp"
android:src="@drawable/ic_launcher" />
</LinearLayout>
</LinearLayout>
</ScrollView>