У меня есть 3 элемента в моем спискеView, проблема в том, что метод pointToPosition() возвращает 1 для первого элемента в списке и -1 для третьего элемента в списке. Сырые и сырые позиции правильны, поскольку они соответствуют позициям dX и dY, заданными инструментами dev dev. Поэтому я не могу работать, как получить правильную позицию курсора для элемента списка особенно последнее положение, как код возвращает -1, а не позиции 2. Я могу вставить дополнительный код, если требуетсяandroid list point to position
int pos = listView.pointToPosition((int) arg1.getRawX(), (int) arg1.getRawY());
Layout
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/x"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.buzz.ContactFragment"
tools:ignore="MergeRootFrame"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<ListView
android:id="@+id/contact_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="@null"
/>
...
Фрагмент
public class ContactFragment extends Fragment implements
LoaderManager.LoaderCallbacks<Cursor>,
GestureDetector.OnGestureListener, GestureDetector.OnDoubleTapListener, View.OnTouchListener {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
gdc = new GestureDetectorCompat(getActivity().getApplicationContext(), this);
View rootView = inflater.inflate(
R.layout.fragment_contact, container, false);
listView = (ListView) rootView.findViewById(R.id.contact_list);
...
}
...
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
int pos = listView.pointToPosition((int) arg1.getRawX(), (int) arg1.getRawY());
Cursor cursor = (Cursor)listView.getItemAtPosition(pos);
...
}
...
Почему бы вам не использовать onItemClickListener(); –
Я хочу поддерживать салфетки, двойной кран и longpress, поэтому я использую gesturedetector – DeveloperDH